我正在使用 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
}
}
}
也许我错过了一些东西,但似乎不可能。