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