По умолчанию корневой проект будет оцениваться до того, как станет дочерним. Таким образом, блок subprojects {...}
в корневом проекте будет оцениваться до оценки дочерних файлов build.gradle
. Таким образом, во время оценки блока subprojects {...}
свойство не переопределяется.
Вы можете вызвать evaluationDependsOnChildren()
в корневом проекте, чтобы перевернуть порядок, но я не рекомендую этого, так как это может вызвать другие проблемы.
Возможно, вы могли бы использовать закрытие, чтобы отложить оценкусвойства?
Другой вариант - объявить свойства в корневом build.gradle, а не в подпроекте build.gradle.
Например:
project(':xxx') {
ext {
diet4jActivationClass = 'xxx'
}
}
project(':yyy') {
ext {
diet4jActivationClass = 'yyy'
}
}
subprojects {...}
Илиеще один вариант - использовать afterEvaluate {...}
замыкание (я действительно ненавижу этот подход, но иногда это единственный способ)
subprojects {
afterEvaluate {...}
}