refactor(sdk-bugcollect): 将 Gradle 插件拆分为独立 JVM 模块 sdk-bugcollect-plugin

AAR 无法作为 Gradle 插件 classpath,plugins{} 块也需要独立的 plugin marker artifact。
将 XuqmBugCollectPlugin/XuqmUploadMappingTask 迁移到新的 sdk-bugcollect-plugin 模块,
使用 java-gradle-plugin 自动生成 com.xuqm.bugcollect 插件标记并发布到 Nexus。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-17 10:41:29 +08:00
父节点 8db0d353de
当前提交 7b52d09758
共有 6 个文件被更改,包括 52 次插入4 次删除

查看文件

@ -0,0 +1,51 @@
plugins {
kotlin("jvm")
`java-gradle-plugin`
`maven-publish`
}
group = "com.xuqm.bugcollect"
val pluginVersion: String by lazy {
(project.findProperty("SDK_BUGCOLLECT_VERSION") as? String)?.takeIf { it.isNotBlank() }
?: (project.findProperty("PUBLISH_VERSION") as? String)?.takeIf { it.isNotBlank() }
?: "0.0.1-SNAPSHOT"
}
version = pluginVersion
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlin {
jvmToolchain(11)
}
gradlePlugin {
plugins {
create("bugcollect") {
id = "com.xuqm.bugcollect"
implementationClass = "com.xuqm.sdk.bugcollect.gradle.XuqmBugCollectPlugin"
displayName = "XuqmGroup BugCollect Plugin"
description = "Uploads ProGuard mapping files to the XuqmGroup BugCollect service after minified builds."
}
}
}
dependencies {
compileOnly("com.android.tools.build:gradle:9.1.0")
}
publishing {
repositories {
maven {
url = uri(rootProject.ext["nexusUrl"] as String)
credentials {
username = project.findProperty("NEXUS_USER") as? String ?: ""
password = project.findProperty("NEXUS_PASSWORD") as? String ?: ""
}
}
}
}

查看文件

@ -49,7 +49,4 @@ dependencies {
implementation(project(":sdk-core"))
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.google.code.gson:gson:2.10.1")
// Gradle Plugin classes need Gradle API + AGP on compile classpath
compileOnly(gradleApi())
compileOnly("com.android.tools.build:gradle:9.1.0")
}

查看文件

@ -1 +0,0 @@
implementation-class=com.xuqm.sdk.bugcollect.gradle.XuqmBugCollectPlugin

查看文件

@ -27,4 +27,5 @@ include(":sdk-update")
include(":sdk-webview")
include(":sdk-license")
include(":sdk-bugcollect")
include(":sdk-bugcollect-plugin")
include(":sample-app")