Как вы читаете свойства проекта, установленные в командной строке Gradle в файле settings.gradle?

#gradle #groovy #properties #settings

#gradle #groovy #свойства #Настройки

Вопрос:

Мы пытаемся добавить механизм переопределения для наших репозиториев плагинов, что-то вроде:

 maven {
    url = gradle.hasProperty("overrideUrl") ? gradle.overrideUrl : "https://default/server"
}
 

Было бы неплохо, если бы мы могли использовать то же значение, которое пользователи указали бы в качестве свойства проекта.

Я пробовал следующее, и похоже rootProject , что свойства не заданы в области файла settings.gradle:

 maven {
    url = rootProject.hasProperty("overrideUrl") ? rootProject.overrideUrl : "https://default/server"
}
 

Цель состоит в том, чтобы на build.gradle и settings.gradle влияло что-то вроде:

 ./gradlew -PoverrideUrl=https://custom/server
 

Ответ №1:

Ах ха! Я нашел это. В rootProject файле settings.gradle не добавлено расширение ExtraPropertiesExtension, но мы можем получить к нему доступ через Settings объект в settings.gradle :

 maven {
    url = settings.hasProperty("overrideUrl") ? settings.overrideUrl : "https://default/server"
}
 

На то же значение можно ссылаться в build.gradle with:

 repositories {
    maven {
        url = project.hasProperty("overrideUrl") ? project.overrideUrl : "https://default/server"
    }
}
 

И тем, и другим можно управлять с помощью:

 ./gradlew -PoverrideUrl="https://custom/server"