来自命令行的Gradle设置插件属性

Soc*_*ash 1 gradle

我正在使用带有gradle的java插件.我想将测试报告放在与默认位置不同的位置(buildDir/testResultsDirName).

在gradle构建文件中,我可以通过设置testReportDir来完成:

test.testReportDir = file('path')
Run Code Online (Sandbox Code Playgroud)

现在我想从外部设置此属性,这意味着从命令行.

不幸的是,以下情况不起作用

gradlew -Dtest.testReportDir=path :subproject:test
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是因为在我的CI中我想将测试结果放在其他地方.

Eri*_*uff 6

使用gradle -P

-P, --project-prop      Set project property for the build script (e.g. -Pmyprop=myvalue).
Run Code Online (Sandbox Code Playgroud)

我通常构建我的脚本以查找命令行属性,如果未设置,则使用默认值:

ext.sourceJob = hasProperty('source_job')? source_job : "trunk-integration"
Run Code Online (Sandbox Code Playgroud)

您也可以在任务中执行(如JavaExec类型):

if(project.hasProperty("jre1_6")) {
   environment 'JRE1_6', jre1_6
}
Run Code Online (Sandbox Code Playgroud)