Gradle - 帮助动态设置Ivy Publish的修订版

时间:2016-05-23 13:33:36

标签: gradle build.gradle 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"
             }
         }
     }
 }

1 个答案:

答案 0 :(得分:1)

不是本身的答案,但我没有代表发表评论!!

我自己一直在做类似的事情。我的设置略有不同,因为我使用Jenkins运行Gradle并触发部署常春藤格式的工件到Artifactory。无论如何,我发现Jenkins插件使用project.version作为修订,所以一直在Gradle中设置。

猜猜我和你一样新,但以防它对你有所帮助......

<强>更新 鉴于这些评论,以下内容将允许您将常春藤修订的设置推迟到执行阶段:

tasks.create(name: 'preTask') { 
  doLast { 
    // put execution phase code here 
  }
}

tasks.create(name: 'Task') {
  dependsOn preTask
  publishing.publications.ivy.revision rootProject.version
}