#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"