8
我承认我对gradle很新,但我并不期望无法理解如下例所示的简单内容。我可以阅读关于使用hasProperty(String propertyName)调用来检查项目属性是否已设置的gradle文档,我坐在这里,不知道为什么这样基本的东西不起作用。将属性传递给gradle构建
我相信我的心态要这么多的“蚁象”为导向,对于确保我失踪基本
task printSystem() << {
println system
println "has property: " + hasProperty("system")
}
一些普通和调用该任务与下面的命令:
$gradle printSystem -Psystem=mySystem
mySystem
has property: null
所以我的问题将是:
- 为什么系统打印出来,但物业返回
null
? - 我应该如何检查名为“system”的项目属性的存在性?
- 是否有不同的方式来测试项目属性而不是系统属性?
- 如何从命令行传递系统属性?
这是从,在gradle这个文件,我相信我读它的权利
19.2.1。检查项目属性
只需使用名称就可以访问构建脚本中的项目属性,就像使用变量一样。如果此属性不存在,则会抛出异常并且构建将失败。如果您的构建脚本依赖于用户可能设置的可选属性(可能位于gradle.properties文件中),则在访问它们之前,您需要检查是否存在。你可以通过使用hasProperty('propertyName')方法返回true或false。
你有没有看到我的答案?它解决了他的问题吗?如果是这样,请接受它。 – Opal
您的答案在星期五下午抵达,当时我正在享受与我的办公室同事一周喝完酒的时间:-)我今天测试了您的解决方案并且工作。我希望只要把项目放在一边,文件就会更清楚。hasProperty('propertyName')',而不是它现在显示的内容。此外,当某些东西应该返回true或false并返回null时会增加混淆。非常感谢你。 – Julian