Gradle - 帮助为 Ivy Publish 动态设置修订版
Gradle - Help Dynamically setting revision for Ivy Publish
我正在尝试在子项目中创建一个 Ivy 出版物,该子项目基于根项目的版本 属性 进行动态修订,该版本也是动态设置的。到目前为止,修订版始终未指定,我找不到设置修订版的方法。
我是 Gradle 的新手,所以我希望有一个我不知道的简单解决方案。 BuildVersion 设置根项目的版本。它正在 运行 但我没有尝试用它设置修订版。这是我正在使用的子项目脚本。我没有包括任何我尝试过但没有用的东西。
apply plugin: 'ivy-publish'
task sourceJar(type: Jar) {
from sourceSets.main.java
classifier "source"
}
publish.dependsOn rootProject.buildVersion
publishing {
repositories {
ivy {
url "${rootProject.buildDir}/repo"
layout 'ivy'
}
}
publications {
ivy(IvyPublication) {
organisation 'com.test'
module 'test'
revision rootProject.version
from components.java
artifact(sourceJar) {
type "source"
conf "default"
}
}
}
}
不是答案本身,但我没有代表发表评论!!
我自己也在做类似的事情。我的设置略有不同,因为我使用 Jenkins 运行 Gradle 并触发将 Ivy 格式的工件部署到 Artifactory。无论如何,我发现 Jenkins 插件使用 project.version 作为修订版,所以一直在 Gradle.
内设置
我猜我和你一样对此很陌生,但以防万一它对你有帮助...
更新:
鉴于评论,以下将允许您将 ivy 修订的设置推迟到执行阶段:
tasks.create(name: 'preTask') {
doLast {
// put execution phase code here
}
}
tasks.create(name: 'Task') {
dependsOn preTask
publishing.publications.ivy.revision rootProject.version
}
我正在尝试在子项目中创建一个 Ivy 出版物,该子项目基于根项目的版本 属性 进行动态修订,该版本也是动态设置的。到目前为止,修订版始终未指定,我找不到设置修订版的方法。
我是 Gradle 的新手,所以我希望有一个我不知道的简单解决方案。 BuildVersion 设置根项目的版本。它正在 运行 但我没有尝试用它设置修订版。这是我正在使用的子项目脚本。我没有包括任何我尝试过但没有用的东西。
apply plugin: 'ivy-publish'
task sourceJar(type: Jar) {
from sourceSets.main.java
classifier "source"
}
publish.dependsOn rootProject.buildVersion
publishing {
repositories {
ivy {
url "${rootProject.buildDir}/repo"
layout 'ivy'
}
}
publications {
ivy(IvyPublication) {
organisation 'com.test'
module 'test'
revision rootProject.version
from components.java
artifact(sourceJar) {
type "source"
conf "default"
}
}
}
}
不是答案本身,但我没有代表发表评论!!
我自己也在做类似的事情。我的设置略有不同,因为我使用 Jenkins 运行 Gradle 并触发将 Ivy 格式的工件部署到 Artifactory。无论如何,我发现 Jenkins 插件使用 project.version 作为修订版,所以一直在 Gradle.
内设置我猜我和你一样对此很陌生,但以防万一它对你有帮助...
更新: 鉴于评论,以下将允许您将 ivy 修订的设置推迟到执行阶段:
tasks.create(name: 'preTask') {
doLast {
// put execution phase code here
}
}
tasks.create(name: 'Task') {
dependsOn preTask
publishing.publications.ivy.revision rootProject.version
}