4

这是我的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 做同样的事情?我只发现了这个未回答的问题。必须有一些简单的方法来做到这一点?

4

3 回答 3

2

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

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

这就是我想要的。尽管对我来说,来自 Maven 背景,这似乎并不自然。我以后可能会研究另一种选择。

于 2017-02-15T12:03:22.427 回答
2

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

gradle -PWHATEVER_NEW_VERSION=2.0.0

考虑以下build.gradle代码段:

def newVersion = project."WHATEVER_NEW_VERSION"
println newVersion

~/utils/gradle/version.gradle这个项目中查看另一种方法。它为主要、次要和增量版本使用单独的环境变量,然后自动构建字符串。因为它驻留在gradle目录中,所以可以简单地将其导入build.gradle,这隐藏了一些样板文件。

于 2017-02-05T01:45:14.183 回答
0

我成功使用了Axion Release Plugin几次,非常满意。功能方面,它最接近 Maven

于 2019-06-05T08:57:33.433 回答