我正在尝试使用 gradle 发布两个子项目。我有两个子项目:SubprojectA 依赖于 SubprojectB。我想使用 maven-publish 发布它们。我在 build.gradle 中有这个:
plugins {
id 'java'
id 'maven-publish'
}
publishing {
publications {
SubprojectA(MavenPublication) {
println(project(':subprojectA').tasks)
groupId group
artifactId 'subjprojectA'
version version
artifact project(':subprojectA').tasks.getByName('jar')
}
SubprojectB(MavenPublication) {
groupId group
artifactId 'subjprojectB'
version version
artifact project(':subjprojectB').tasks.getByName('jar')
}
}
repositories {
maven {
url "http://some-url"
}
}
}
Gradle 尝试按字母顺序发布它们:由于 subprojectA 依赖于 subprojectB,因此它不起作用,因为 subprojectB 尚未发布。如果我将 subprojectA 重命名为 ZSubprojectA,如下所示:
ZSubprojectA(MavenPublication) {
println(project(':subprojectA').tasks)
groupId group
artifactId 'subprojectA'
version version
artifact project(':subprojectA').tasks.getByName('jar')
}
然后它可以工作,但我不喜欢这个解决方案。我试过这样的事情:
project(':subprojectA') {
publish.dependsOn(":subprojectB:build")
}
但它不起作用,并且 :subprojectB:publish 不存在。