Gradle 相当于 maven-versions-plugin

问题描述 投票:0回答:4

这是我的

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未回答的问题。一定有一些简单的方法可以做到这一点吗?

maven gradle build.gradle gradle-plugin maven-versions-plugin
4个回答
3
投票

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

gradle -PWHATEVER_NEW_VERSION=2.0.0

考虑以下

build.gradle
片段:

def newVersion = project."WHATEVER_NEW_VERSION"
println newVersion

请参阅

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


3
投票

我最终将版本号提取到

gradle.properties
并使用 sed 将它们更新为自动构建脚本的一部分:

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

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


0
投票

我成功使用了Axion Release Plugin几次,非常满意。就功能而言,它最接近 Maven 的


0
投票

我已在

build.gradle.kts

上添加了这一行
version = System.getenv("NEW_VERSION") ?: "0.0.1-SNAPSHOT"

不完全等效,但在 CI/CD 脚本中运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.