Публикация артефактов напрямую, включая подмодули Gradle
Я хочу опубликовать артефакт 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, но он жаловался только на то, что было опубликовано более одного артефакта. Любая помощь здесь будет отличной.