如何通过在gradle命令行上传递version属性来设置project.version?
我想用命令行传递的自定义版本构建JAR,例如:
当我执行这样的gradle构建任务时:
gradle build -Pversion=1.0
应该生成myproject-1.0.jar。
我尝试将下面的行添加到build.gradle中 ,但它不起作用:
version = project.hasProperty('version') ? project['version'] : '10.0.0'
您无法从命令行覆盖现有项目属性,请查看此处 。 因此,尝试将版本变量重命名为与版本不同的版本,并在命令之前使用-P
标志设置它,如:
gradle -PprojVersion=10.2.10 build
然后在你的build.gradle中
if (project.hasProperty('projVersion')) { project.version = project.projVersion } else { project.version = '10.0.0' }
或者像使用?:运算符一样
我发现您需要在gradle.properties文件中设置属性,并在build.gradle中引用它以使上述解决方案起作用。 还要确保选项出现在命令之前(如上所述)。
gradle.properties内容:
version=1.0.12
build.gradle内容:
version "${version}"
然后可以在命令行上覆盖版本:
gradle -Pversion=1.0.13 publish
如果将version
条目移动到gradle.properties
文件,您还可以:
gradle clean build -Dorg.gradle.project.version=1.1
如果您需要“未指定”以外的默认版本:
version = "${version != 'unspecified' ? version : 'your-default-version'}"
通过命令行传递版本:
gradle build -P version=1.0
version = (findProperty('version') == 'unspecified') ? '0.1' : version