Gradle maven-publish:任务只发布一个

时间:2017-05-31 13:48:28

标签: java maven gradle maven-publish

我有一个Java项目,使用以下方法构建和发布许多jar( a.jar b.jar ,...)

publishing {
    publications {
        a (MavenPublication) {
            artifactId 'a'
            artifact aJar
        }
        b (MavenPublication) {
            artifactId 'a'
            artifact aJar
        }
    }
}

repositories { ...

我还定义了一个 z.jar ,我想要一个特殊的任务来发布它,我想不为构建和发布(publishToMaven *)任务构建/发布它。

如何定义此类任务?

我尝试了类似的东西和其他变体,它无法编译gradle:

task zPublish(type: PublishToMavenRepository) {
    publication = new MavenPublication() {
        artifactId 'z'
        artifact zJar
    }
}

我搜索 maven-publish 插件的in the source但未成功。

感谢您的好主意。

2 个答案:

答案 0 :(得分:0)

尝试创建单独的任务

publishing {
    publications {
        a (MavenPublication) {
            artifactId 'a'
            artifact aJar
        }
        b (MavenPublication) {
            artifactId 'b'
            artifact bJar
        }
        z(MavenPublication) {
            artifact zJar
        }
    }
}

task zPublish() {
    dependsOn('publishZPublicationToMavenRepository')
    description('Publishes Z')
}

task otherPublish() {
    dependsOn('publishAPublicationToMavenRepository', 'publishBPublicationToMavenRepository')
    description('Publishes A and B')
}

答案 1 :(得分:-1)

默认情况下,Gradle插件maven-publish为每个发布和存储库创建一个传统任务,因此如果您定义了发布,则可以使用该传统任务发布它。

例如,如果您已定义z出版物,则可以使用任务publishZPublicationToMavenRepository