Gradle - 自动更新依赖项版本

时间:2017-07-20 12:36:26

标签: gradle build.gradle

我有Jenkins CI管道,可以发布应用程序。此过程以人员触发应用程序的发布作业的方式工作。此作业通过gradle dependencies命令检查所有项目依赖项。对于所有依赖项,将自动触发快照释放作业。 发布作业只需升级lib / application版本并将其部署在artifactory中。

如何自动升级SNAPSHOT依赖版本以在gradle中发布版本?

我的build.gradle文件如下所示:

Properties versions = new Properties()
versions.load(new FileInputStream(rootProject.projectDir.path + "/version.properties"))

dependencies {
    compile("projectA:${versions.projectAVersion}")
    compile("projectB:${versions.projectBVersion}")
}

和version.properties文件

projectAVersion=1.1.0-SNAPSHOT
projectBVersion=1.1.0-SNAPSHOT

事实上,我正在寻找类似于maven版本插件的东西。

  • 是否可以在build.gradle中自动升级版本号?怎么样?
  • 更难的版本 - 如果版本在外部version.properties文件中,是否可以升级版本号?

修改

实际上我只需要Gradle中的Maven版本插件(版本:use-releases和versions:use-next-releases)功能。

1 个答案:

答案 0 :(得分:0)

我对你的问题不太清楚。我的理解是,您需要在每次构建后动态更新版本值。

您可以做的是获取属性值。删除-SNAPSHOT。每次构建后以增量更新1.1.0。如1.1.1,1.1.2等。

这可以通过

完成
      task testing { 
        Properties props = new Properties()
      //getting and loading the property file
      //Give proper path to file
        File propsFile = new File('version.properties')
        props.load(propsFile.newDataInputStream())
       //Now strip of -SNAPSHOT and get the last digit and increment it by 1
            Integer rand = props.getProperty('lastDigit').toInteger()+1
            String variable=rand.toString()
        //Append -SNAPSHOT with 'variable and set the property  
            props.setProperty('version',variable)
            props.store(propsFile.newWriter(), null)
      }

如果我对你的问题的理解是正确的,那就行了。