Gradle-如何在settings.gradle中定义可选的额外属性

时间:2019-03-01 08:55:37

标签: gradle build.gradle gradlew

我希望能够在文件build.gradle中使用可选的额外属性。为此,我必须检查属性是否已定义,但是出现以下错误

  

由于不存在额外的属性扩展而无法获取属性'prop'

文件build.gradle

[...]
def my_prop=''
if(gradle.ext.prop!= null && gradle.ext.prop != '')
    my_prop=gradle.ext.prop

正在使用此文件setting.gradle

gradle.ext.prop='PROP'

我在文件setting.gradle中注释行时不起作用

//gradle.ext.prop='PROP'

如何在build.gradle中检查gradle.ext.prop是否存在?

1 个答案:

答案 0 :(得分:1)

ext属性的类型为ExtraPropertiesExtension:请参见this DSL文档。

总结:

  • 如果未设置属性,则get(propName)方法将抛出UnknownPropertyException
  • has(propName)方法可用于在尝试访问属性之前检查是否已设置属性

根据您的情况,您可以按以下方式使用has(name)方法

def my_prop = ''
if (gradle.ext.has("prop") && gradle.ext.prop != '') {
    println "Property PROP  found: $gradle.ext.prop"
    my_prop = gradle.ext.prop
    // or:  my_prop = gradle.ext('prop')
} else {
    println "Property PROP not set."
}