我正在创建依赖于我的其他本地模块的 gradle 插件。它的一些 gradle 构建如下所示:dependencies { compile gradleApi() compile project(":myDependencyProject")}publishing { publications { maven(MavenPublication) { groupId = 'org.my.gradle.plugin' artifactId = 'some-name' version = '1.0-SNAPSHOT' from components.java } }}gradlePlugin { plugins { jsonPlugin { id = 'org.my.gradle.plugin' implementationClass = 'my.implementation.class' } }}当我使用gradle publishToMavenLocal发布我的插件,然后我尝试在另一个项目中使用该插件时,它失败并出现以下错误:FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring project ':my-project'.> Could not resolve all artifacts for configuration ':my-project:classpath'. > Could not find org.my.gradle.plugin:myDependencyProject:1.0-SNAPSHOT. Searched in the following locations: ...简而言之,它找不到 myDependencyProject 项目的依赖项。这就是为什么下一步我尝试创建一个胖 jar 并发布它,但我遇到了同样的错误(gradle 插件的代码是相同的,除了我已更改from components java为artifact shadowJar)。有人可以帮助我如何发布带有本地依赖项的 gradle 插件并在另一个项目中使用它吗?非常感谢您的帮助。
1 回答

慕容森
TA贡献1853条经验 获得超18个赞
我们最终使用Gradle shadow 插件将我们的模块包含在已发布的工件中。
不过,对我们来说很重要的一件事是只在其中包含本地库,以防止我们的最终消费者拥有某些库(例如 Kotlin)的 2 个副本。所以我们过滤了依赖
shadowJar { dependencies { include(dependency(':your-module-name:')) }}
添加回答
举报
0/150
提交
取消