From 7b52d09758989c17b5afafe30bd86b7d267ef068 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Wed, 17 Jun 2026 10:41:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sdk-bugcollect):=20=E5=B0=86=20Gradle?= =?UTF-8?q?=20=E6=8F=92=E4=BB=B6=E6=8B=86=E5=88=86=E4=B8=BA=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=20JVM=20=E6=A8=A1=E5=9D=97=20sdk-bugcollect-plugin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- sdk-bugcollect-plugin/build.gradle.kts | 51 +++++++++++++++++++ .../bugcollect/gradle/XuqmBugCollectPlugin.kt | 0 .../gradle/XuqmUploadMappingTask.kt | 0 sdk-bugcollect/build.gradle.kts | 3 -- .../com.xuqm.bugcollect.properties | 1 - settings.gradle.kts | 1 + 6 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 sdk-bugcollect-plugin/build.gradle.kts rename {sdk-bugcollect/src/main/java => sdk-bugcollect-plugin/src/main/kotlin}/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt (100%) rename {sdk-bugcollect/src/main/java => sdk-bugcollect-plugin/src/main/kotlin}/com/xuqm/sdk/bugcollect/gradle/XuqmUploadMappingTask.kt (100%) delete mode 100644 sdk-bugcollect/src/main/resources/META-INF/gradle-plugins/com.xuqm.bugcollect.properties diff --git a/sdk-bugcollect-plugin/build.gradle.kts b/sdk-bugcollect-plugin/build.gradle.kts new file mode 100644 index 0000000..fe71e24 --- /dev/null +++ b/sdk-bugcollect-plugin/build.gradle.kts @@ -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 ?: "" + } + } + } +} diff --git a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt b/sdk-bugcollect-plugin/src/main/kotlin/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt similarity index 100% rename from sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt rename to sdk-bugcollect-plugin/src/main/kotlin/com/xuqm/sdk/bugcollect/gradle/XuqmBugCollectPlugin.kt diff --git a/sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmUploadMappingTask.kt b/sdk-bugcollect-plugin/src/main/kotlin/com/xuqm/sdk/bugcollect/gradle/XuqmUploadMappingTask.kt similarity index 100% rename from sdk-bugcollect/src/main/java/com/xuqm/sdk/bugcollect/gradle/XuqmUploadMappingTask.kt rename to sdk-bugcollect-plugin/src/main/kotlin/com/xuqm/sdk/bugcollect/gradle/XuqmUploadMappingTask.kt diff --git a/sdk-bugcollect/build.gradle.kts b/sdk-bugcollect/build.gradle.kts index a6c52b0..5c66300 100644 --- a/sdk-bugcollect/build.gradle.kts +++ b/sdk-bugcollect/build.gradle.kts @@ -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") } diff --git a/sdk-bugcollect/src/main/resources/META-INF/gradle-plugins/com.xuqm.bugcollect.properties b/sdk-bugcollect/src/main/resources/META-INF/gradle-plugins/com.xuqm.bugcollect.properties deleted file mode 100644 index 9da3965..0000000 --- a/sdk-bugcollect/src/main/resources/META-INF/gradle-plugins/com.xuqm.bugcollect.properties +++ /dev/null @@ -1 +0,0 @@ -implementation-class=com.xuqm.sdk.bugcollect.gradle.XuqmBugCollectPlugin diff --git a/settings.gradle.kts b/settings.gradle.kts index 755487d..72c6791 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -27,4 +27,5 @@ include(":sdk-update") include(":sdk-webview") include(":sdk-license") include(":sdk-bugcollect") +include(":sdk-bugcollect-plugin") include(":sample-app")