Файл gradle.properties
читается один раз, в начале выполнения сборки он не будет перезагружен для каждого подпроекта, поэтому, если вы измените этот файл из задач корневого проекта, вы не сможете ожидать обновления свойств быть доступным для подпроектной задачи. (и я не думаю, что это хорошая идея изменить это gradle.properties
из вашего скрипта сборки)
Почему бы вам просто не установить свои свойства с помощью project.setProperty(key, value)
(см. Project DSL )?
Пример:
сборка корневого проекта:
task setProperties(){
doLast{
def var = computeVar()
project.setProperty('VAR', var )
// DO NOT DO THAT:
// new File('gradle.properties').append("\nVAR=" + var)
}
}
из подпроекта:
task printProperties(){
dependsOn tasks.getByPath(':setProperties')
doLast{
println "Properties: "
println "VAR = $VAR"
}
}