9

我正在使用 Gradle 发布到本地 Artifactory 存储库。我在构建过程中生成了 3 个 jar:一个带有 .class 的经典 jar,一个带有 javadoc (-javadoc.jar) 和一个带有源代码 (-sources)。

我想将我的二进制 jar 和 javadoc jar 发布到特定的存储库(公共存储库),并将源 jar 发布到私有存储库。

如何配置 maven-publish 插件来做到这一点?我已经能够定义多个存储库,但 Gradle 尝试将所有 jar 推送到所有存储库:

task sourcesJar(type: Zip, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Zip, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

publishing {
    repositories {
        maven {
            name "binary"
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
            url "http://192.168.2.167:8081/artifactory/libs-snapshot-local"
        }
        maven {
            name "sources"
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
            url "http://192.168.2.167:8081/artifactory/sources-snapshot-local"
        }
    }
    publications {
        binary(MavenPublication) {
            // *** I WANT TO USE THE "binary" REPOSITORY HERE ****
            from components.java
            artifact javadocJar
        }
        sources(MavenPublication) {
            // *** I WANT TO USE THE "sources" REPOSITORY HERE ***
            artifact sourcesJar
        }
    }
}

也许我错过了一些东西,但似乎不可能。

4

0 回答 0