2

我有一个 Java 项目,它使用以下方法构建和发布许多 jar(a.jarb.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插件的源代码中搜索但没有成功。

谢谢你的好主意。

4

2 回答 2

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')
}
于 2019-06-25T17:23:59.637 回答
-1

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

例如,如果您定义了一个z发布,则可以使用 task publishZPublicationToMavenRepository

于 2017-06-02T23:39:20.377 回答