Gradle - Как определить необязательное дополнительное свойство в settings.gradle - PullRequest
0 голосов
/ 01 марта 2019

Я хотел бы иметь возможность использовать дополнительное дополнительное свойство в моем файле 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 голосов
/ 01 марта 2019

Свойство ext имеет тип ExtraPropertiesExtension: см. эту документацию DSL .

Подводя итог:

  • метод get(propName) будетthrow 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."
}
...