Gradle 相当于 maven-versions-plugin
Gradle equivalent of maven-versions-plugin
这是我的 build.gradle
:
group 'whatever'
version '1.0.0-SNAPSHOT'
...
dependencies {
compile 'whatever:2.2.1-SNAPSHOT'
}
我想自动化发布过程,其中包括需要将两个版本都设置为特定值,例如1.1.0
或 2.2.0
仅使用命令行。任何类型的自动增量都不是一种选择。
对于 Maven,我会使用 maven-versions-plugin
:
mvn versions:set -DnewVersion=${WHATEVER_NEW_VERSION}
如何对 Gradle 执行相同的操作?我只找到 this 个未回答的问题。必须有一些简单的方法来做到这一点?
虽然与发布无关,但传递 command-line 属性的一种方法如下:
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
中,这隐藏了一些样板文件。
我最终将版本号提取到 gradle.properties
并使用 sed:
将它们更新为自动构建脚本的一部分
sed -i -e \"/someVersionNumber=/ s/=.*/=${SOME_NEW_VERSION_NUMBER}/\" gradle.properties
这就是我想要的。虽然对我来说,来自 Maven 背景,这似乎并不自然。稍后我可能会研究另一种选择。
成功使用了Axion Release Plugin几次,非常满意。 Functionality-wise 它最接近 Maven 的
这是我的 build.gradle
:
group 'whatever'
version '1.0.0-SNAPSHOT'
...
dependencies {
compile 'whatever:2.2.1-SNAPSHOT'
}
我想自动化发布过程,其中包括需要将两个版本都设置为特定值,例如1.1.0
或 2.2.0
仅使用命令行。任何类型的自动增量都不是一种选择。
对于 Maven,我会使用 maven-versions-plugin
:
mvn versions:set -DnewVersion=${WHATEVER_NEW_VERSION}
如何对 Gradle 执行相同的操作?我只找到 this 个未回答的问题。必须有一些简单的方法来做到这一点?
虽然与发布无关,但传递 command-line 属性的一种方法如下:
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
中,这隐藏了一些样板文件。
我最终将版本号提取到 gradle.properties
并使用 sed:
sed -i -e \"/someVersionNumber=/ s/=.*/=${SOME_NEW_VERSION_NUMBER}/\" gradle.properties
这就是我想要的。虽然对我来说,来自 Maven 背景,这似乎并不自然。稍后我可能会研究另一种选择。
成功使用了Axion Release Plugin几次,非常满意。 Functionality-wise 它最接近 Maven 的