Gradle Kotlin插件发布正确性验证及跨项目应用咨询
问题解答
1. 是否已正确发布插件?
你的发布流程框架没问题,但有一处关键配置需要修正,否则其他项目无法通过plugins块正常识别插件:
- 当前
publishing块中,publication是基于java组件生成的,但Gradle插件项目应当使用gradlePlugin插件自动生成的pluginMaven组件。修改后的配置如下:
publications { create<MavenPublication>("myLibrary") { from(components["pluginMaven"]) // 替换原有的components["java"] } }
- 验证发布是否成功的方法:
- 登录本地Maven仓库后台(http://localhost:8081),进入
hellomaven仓库,检查是否存在路径aaa/bbb/com.asd.greeting/1.4 - 该目录下需包含插件jar包、
pom.xml、以及com.asd.greeting-1.4.pom(插件标记 artifact,用于Gradle识别插件ID)
- 登录本地Maven仓库后台(http://localhost:8081),进入
若已发布过旧版本,重新执行./gradlew publish覆盖即可。
2. 如何在其他项目中应用该插件?
不需要添加implementation依赖,正确配置步骤如下:
步骤1:配置插件仓库(核心)
因为插件发布在私有Maven仓库,Gradle需要知道插件ID对应的标记 artifact 位置,推荐在项目根目录的settings.gradle.kts中全局配置:
pluginManagement { repositories { mavenCentral() maven { credentials { username = "admin" password = "123456" } url = uri("http://localhost:8081/repository/hellomaven/") isAllowInsecureProtocol = true } } }
步骤2:在build.gradle.kts中应用插件
插件ID就是你在插件项目里定义的com.asd.greeting,直接在plugins块中引入:
plugins { kotlin("jvm") version "1.9.0" id("com.asd.greeting") version "1.4" } // 无需保留implementation("aaa.bbb:plugin:1.4"),插件依赖会由Gradle自动处理
验证插件生效
执行./gradlew tasks,若能看到greeting任务则说明插件已成功应用;执行./gradlew greeting,会打印出Hello from plugin 'com.asd.greeting'。
内容的提问来源于stack exchange,提问作者Xixiaxixi
相关产品推荐
相关产品推荐

