【问题标题】:Gradle - How to define optional extra property in settings.gradleGradle - 如何在 settings.gradle 中定义可选的额外属性
【发布时间】:2019-03-01 08:55:37
【问题描述】:

我希望能够在我的文件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 是否存在?

【问题讨论】:

    标签: gradle build.gradle gradlew


    【解决方案1】:

    ext 属性的类型为 ExtraPropertiesExtension:请参阅 this DSLdocumentation。

    总结一下:

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

    【讨论】:

      猜你喜欢
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 2015-02-23
      • 1970-01-01
      • 2018-12-19
      相关资源
      最近更新 更多