直接发布工件,包括gradle子模块

时间:2018-11-17 16:51:16

标签: java maven gradle gradle-plugin maven-publish

我想从一个项目中发布一个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 plugin,但这只是抱怨发布了多个工件。任何帮助都会很棒。

0 个答案:

没有答案