【问题标题】:Gradle - Help Dynamically setting revision for Ivy PublishGradle - 帮助为 Ivy Publish 动态设置修订
【发布时间】:2016-09-20 10:04:37
【问题描述】:

我正在尝试在子项目中创建一个常春藤出版物,该出版物具有基于根项目的版本属性的动态修订版,该版本属性也是动态设置的。到目前为止,修订版始终未指定,我找不到设置修订版的方法。

我是使用 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"
             }
         }
     }
 }

【问题讨论】:

    标签: gradle build.gradle ivy


    【解决方案1】:

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

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

    我猜我和你一样陌生,但以防万一它对你有帮助......

    更新: 鉴于 cmets,以下将允许您将 ivy 修订版的设置推迟到执行阶段:

    tasks.create(name: 'preTask') { 
      doLast { 
        // put execution phase code here 
      }
    }
    
    tasks.create(name: 'Task') {
      dependsOn preTask
      publishing.publications.ivy.revision rootProject.version
    }
    

    【讨论】:

    • 我的问题是我认为(如果我理解 Gradle 正在正确执行的操作)它会在初始化阶段解析修订,但 buildVersion 直到执行阶段才会运行,因此修订没有得到设置。这导致它始终使用“未指定”的修订版,这是我的问题。我开始怀疑是否有解决方案。
    • 如果是这种情况,那么您可以使用我找到的这个模式:tasks.create(name: 'preTask') { doLast { // put execution phase code here } } tasks.create(name: 'Task') { dependsOn preTask publishing.publications.ivy.revision rootProject.version }
    • 那行得通。非常感谢!如果您将此作为您的答案,我会将其标记为答案。
    • 很高兴它起作用了-答案已更新以反映详细信息...虽然要清楚,但我认为dependsOn绝对不是必需的-猜测您可能只能在其中运行您的修订任务doLast 块
    • 我就是这么做的。我能够在我的 setIvyVersion 任务的 doLast 块中设置修订版(对应于您的“任务”任务。谢谢!
    猜你喜欢
    • 2016-02-12
    • 2013-07-08
    • 2013-06-03
    • 2013-04-23
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    相关资源
    最近更新 更多