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

0 ответов

Другие вопросы по тегам