我承认我很贪心,但我没想到会像下面的例子那样简单地理解。我可以使用hasProperty(String propertyName)调用来阅读关于检查项目属性是否已设置的gradle文档,我坐在这里并且不知道为什么这么基本的东西不起作用。
我相信我的思想一定是这么多"蚂蚁喜欢"我确实缺少一些普通的基本
task printSystem() << {
println system
println "has property: " + hasProperty("system")
}
并使用以下命令调用该任务:
$gradle printSystem -Psystem=mySystem
mySystem
has property: null
所以我的问题是:
null
?这是来自gradle文档,我相信我正在阅读它
19.2.1。检查项目属性
您可以使用其名称来访问构建脚本中的项目属性,就像使用变量一样。如果此属性不存在,则将抛出异常并且构建将失败。如果构建脚本依赖于用户可能设置的可选属性(可能在gradle.properties文件中),则需要在访问它们之前检查是否存在。您可以使用hasProperty(&#39; propertyName&#39;)方法执行此操作,该方法返回true或false。
答案 0 :(得分:16)
您需要在hasProperty
实例上显式调用project
- 如果没有它,则在某些本地上下文中调用hasProperty
。以下示例有效:
task printSystem() << {
println system
println "has property: " + project.hasProperty("system")
}
system
),因此<{1}}实例 。如果您未通过project
媒体资源,则会在system
上抛出异常。println
project.hasProperty('propName')
类通过project
实例和系统属性访问项目属性。System
开关 - -D