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

Gradle-如何在settings.Gradle中定义可选的额外属性,gradle,build.gradle,gradlew,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='

我希望能够在我的文件
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'
//gradle.ext.prop='PROP'
当我在file setting.gradle中注释行时,它不起作用

gradle.ext.prop='PROP'
//gradle.ext.prop='PROP'

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

ext
属性的类型为
extrapropertieseextension
:请参阅文档

总结如下:

  • 如果未设置属性,
    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."
}