Gradle相当于maven-versions-plugin

krcsximq  于 2023-10-17  发布在  Maven
关注(0)|答案(4)|浏览(132)

这是我的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未回答的问题。一定有什么简单的办法吧?

holgip5t

holgip5t1#

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

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中,这会隐藏一些样板文件。

t2a7ltrp

t2a7ltrp2#

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

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

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

flvlnr44

flvlnr443#

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

ckocjqey

ckocjqey4#

我在build.gradle.kts上添加了这一行

version = System.getenv("NEW_VERSION") ?: "0.0.1-SNAPSHOT"

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

相关问题