我有一个多项目 gradle 构建,我在父构建中声明一个任务,该任务使用在子项目中声明的变量(该值可以根据子项目而变化)。但是,我在配置阶段收到错误,该变量不存在。我的设置看起来像
build.gradle(顶层)
subprojects {
myTask {
prop = valueDefinedInChild
}
}
And then
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:
。当逻辑仅适用于选定的子项目时,或者在需要避免父项目和子项目之间耦合的情况下(例如,当使用 Gradle 的新功能时),这是一个不错的选择按需配置特征)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)