在父母的gradle任务中使用变量孩子中定义的(gradle use variables in pa

2019-07-19 04:05发布

我有一个多gradle这个建立在那里我使用该得到的子项目(该值可以根据子项目变更)声明的变量父生成声明的任务。 然而,我在配置阶段,该变量不存在得到一个错误。 我的设置是这样

的build.gradle(顶层)

subprojects {
   myTask {
     prop = valueDefinedInChild
   }

}

然后

的build.gradle(子项目)

valueDefinedInChild = 'someValue'

有没有办法正确地做到这一点?

Answer 1:

有一个办法做到这一点( project.evaluationDependsOnChildren()但我建议只使用它作为最后的手段。 相反,我会配置在顶层的共性,并在子项目水平的差异:

的build.gradle(顶层):

subprojects {
    task myTask { // add task to all subprojects
        // common configuration goes here
    }
}

的build.gradle(子项目):

myTask {
    prop = 'someValue'
}

另一种方式,以避免重复自己是分解出共同的代码放到一个单独的脚本,并有子项目包括它apply from: 。 这是一个很好的选择,当逻辑只适用于选定的子项目,或在情况下,它是需要避免父项目和子项目之间的耦合(例如,使用摇篮的新当上按需配置功能)。



文章来源: gradle use variables in parent task that are defined in child
标签: gradle