如何通过在gradle命令行上传递版本属性来设置project.version?

2022-08-31 15:45:39

我想使用通过命令行传递的自定义版本构建JAR,例如:

当我执行 gradle 构建任务时,如下所示:

gradle build -Pversion=1.0

应该生成 myproject-1.0.jar。

我尝试将下面的行添加到build.gradle中,但它不起作用:

version = project.hasProperty('version') ? project['version'] : '10.0.0'

答案 1

仅在文件中设置属性(即从 中删除)。还要确保选项位于命令之前(如上所述)。gradle.propertiesbuild.gradle

gradle.properties contents:

version=1.0.12

然后,可以在命令行上使用以下命令覆盖版本:

gradle -Pversion=1.0.13 publish

答案 2

您无法从命令行覆盖现有项目属性,请看这里。因此,请尝试将版本变量重命名为与版本不同的版本,并在命令之前使用标志进行设置,例如:-P

gradle -PprojVersion=10.2.10 build 

然后在您的 build.gradle 中

if (project.hasProperty('projVersion')) {
  project.version = project.projVersion
} else {
  project.version = '10.0.0'
}

或者就像你对?:运算符所做的那样


推荐