pat*_*ide 28 java groovy gradle
我想用命令行传递的自定义版本构建JAR,例如:
当我像这样执行gradle构建任务时:
gradle build -Pversion=1.0
Run Code Online (Sandbox Code Playgroud)
应该生成myproject-1.0.jar.
我尝试将下面的行添加到build.gradle中,但它不起作用:
version = project.hasProperty('version') ? project['version'] : '10.0.0'
Run Code Online (Sandbox Code Playgroud)
小智 54
我发现您需要在gradle.properties文件中设置属性,并在build.gradle中引用它以使上述解决方案起作用.还要确保选项出现在命令之前(如上所述).
gradle.properties内容:
version=1.0.12
Run Code Online (Sandbox Code Playgroud)
然后可以在命令行上覆盖版本:
gradle -Pversion=1.0.13 publish
Run Code Online (Sandbox Code Playgroud)
Sta*_*lav 22
您无法从命令行覆盖现有项目属性,请查看此处.因此,尝试将版本变量重命名为与版本不同的版本,并-P
在命令之前使用flag 设置它,如:
gradle -PprojVersion=10.2.10 build
Run Code Online (Sandbox Code Playgroud)
然后在你的build.gradle中
if (project.hasProperty('projVersion')) {
project.version = project.projVersion
} else {
project.version = '10.0.0'
}
Run Code Online (Sandbox Code Playgroud)
或者像使用?:运算符一样
如果您将version
条目移至gradle.properties
文件,您还可以:
gradle clean build -Dorg.gradle.project.version=1.1
Run Code Online (Sandbox Code Playgroud)
如果您需要"未指定"以外的默认版本:
version = "${version != 'unspecified' ? version : 'your-default-version'}"
Run Code Online (Sandbox Code Playgroud)
通过命令行传递版本:
gradle build -P version=1.0
Run Code Online (Sandbox Code Playgroud)
-Pversion=...
只要您不在build.gradle 中设置它,您就可以在 cli 上传递项目版本。如果在 cli 上没有传递版本时需要自定义默认值,请使用gradle.properties文件,如下所示:version=...
TL;DR:如果您想稍后通过 cli 更改它,请不要在build.gradle文件中设置版本。
归档时间: |
|
查看次数: |
45003 次 |
最近记录: |