我有一个多gradle这个建立在那里我使用该得到的子项目(该值可以根据子项目变更)声明的变量父生成声明的任务。 然而,我在配置阶段,该变量不存在得到一个错误。 我的设置是这样
的build.gradle(顶层)
subprojects {
myTask {
prop = valueDefinedInChild
}
}
然后
的build.gradle(子项目)
valueDefinedInChild = 'someValue'
有没有办法正确地做到这一点?
有一个办法做到这一点( project.evaluationDependsOnChildren()
但我建议只使用它作为最后的手段。 相反,我会配置在顶层的共性,并在子项目水平的差异:
的build.gradle(顶层):
subprojects {
task myTask { // add task to all subprojects
// common configuration goes here
}
}
的build.gradle(子项目):
myTask {
prop = 'someValue'
}
另一种方式,以避免重复自己是分解出共同的代码放到一个单独的脚本,并有子项目包括它apply from:
。 这是一个很好的选择,当逻辑只适用于选定的子项目,或在情况下,它是需要避免父项目和子项目之间的耦合(例如,使用摇篮的新当上按需配置功能)。