Публикация артефактов напрямую, включая подмодули Gradle - PullRequest
0 голосов
/ 17 ноября 2018

Я хочу опубликовать артефакт 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, тогда как зависимости подмодуля попадают в файл pom вместе с зависимостями 3p.

В моем случае, однако, я хотел бы, чтобы артефакт включал также классы из этих подмодулей, и я не уверен, как туда добраться. Это потому, что я хочу, чтобы все мои потребители могли использовать один артефакт, который включает все зависимости из моего проекта, вместо того, чтобы я публиковал отдельные зависимости, а затем чтобы потребители использовали их по отдельности. У меня эти модули разделены на gradle, потому что внутренние модули используют их части в разное время, поэтому я не хочу объединять их в один модуль gradle.

Я пытался artifact ':dependencyOne', предполагая, что он будет использовать плагин MavenArtifact , но он жаловался только на то, что опубликовано более одного артефакта. Любая помощь здесь будет отличной.

...