Gradle相当于maven-versions-plugin

时间:2017-02-04 18:45:41

标签: maven gradle build.gradle gradle-plugin maven-versions-plugin

这是我的build.gradle

group 'whatever'
version '1.0.0-SNAPSHOT'

...

dependencies {
    compile 'whatever:2.2.1-SNAPSHOT'
}

我想自动发布过程,其中包括需要将两个版本都设置为特定值,例如1.1.02.2.0仅使用命令行。任何一种自动增量都不是一种选择。

使用Maven,我会使用maven-versions-plugin

执行此操作
mvn versions:set -DnewVersion=${WHATEVER_NEW_VERSION}

我如何使用Gradle做同样的事情?我只找到this未回答的问题。必须有一些简单的方法吗?

3 个答案:

答案 0 :(得分:1)

虽然与发布无关,但传递命令行属性的一种方法如下:

gradle -PWHATEVER_NEW_VERSION=2.0.0

考虑以下build.gradle代码段:

def newVersion = project."WHATEVER_NEW_VERSION"
println newVersion

请参阅this project中的~/utils/gradle/version.gradle了解其他方法。它为主要版本,次要版本和增量版本使用单独的环境变量,然后自动构建字符串。因为它位于gradle目录中,所以可以简单地将其导入build.gradle,这会隐藏一些样板。

答案 1 :(得分:1)

我最终将版本号提取到gradle.properties并使用sed将其作为自动构建脚本的一部分进行更新:

sed -i -e \"/someVersionNumber=/ s/=.*/=${SOME_NEW_VERSION_NUMBER}/\" gradle.properties

这就是我想要的。虽然对我来说,来自Maven背景,但这看起来并不自然。我稍后可能会研究另一种选择。

答案 2 :(得分:0)

我成功使用了Axion Release Plugin次,感到非常满意。从功能上讲,它最接近Maven的