我想从一个项目中发布一个 maven 工件,该项目包括子模块中的所有类(如 fatJar),而不是将它们作为已发布工件的 pom 文件中的依赖项。
假设我有一个 gradle 项目设置,例如
root
- moduleToPublish
- dependendencyOne
- dependendencyTwo
我想发布一个工件moduleToPublish
,我设置buid.gradle
如下(注意对其他子模块的直接依赖)
dependencies {
compile project(':dependencyOne')
compile project(':dependencyTwo')
compile other3PMavenDependencies...
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
当我运行时./gradlew :moduleToPublish:publish
,工件中仅包含来自的类,moduleToPublish
而子模块依赖项与 3p 依赖项一起位于 pom 文件中。
不过,就我而言,我希望工件也包含来自这些子模块的类,但我不知道如何到达那里。这是因为我希望我的所有消费者都能够使用包含我项目中所有依赖项的单个工件,而不是我发布单个依赖项,然后让消费者单独使用它们。我将这些模块拆分为 gradle,因为内部模块在不同时间使用它们的一部分 - 所以我不想将它们合并为单个 gradle 模块。
我试着artifact ':dependencyOne'
假设它会使用MavenArtifact 插件,但这只是抱怨发布了不止一个工件。这里的任何帮助都会很棒。