gpt4 book ai didi

gradle - 如何在gradle中的所有子项目之前先执行根项目

转载 作者:行者123 更新时间:2023-12-03 05:39:22 26 4
gpt4 key购买 nike

我想先执行根项目,然后再执行所有子项目,原因是我在根项目中有一组任务,该任务通过附加到properties.gradle或local.properties文件(例如:VAR = 10)来生成属性,然后我要执行在所有子项目中使用它。

由于gradle build会在我尝试引用子项目中的属性时并行运行,因此会失败。

希望提前得到答复。

最佳答案

在构建执行开始时,仅读取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"
}
}

关于gradle - 如何在gradle中的所有子项目之前先执行根项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54147699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com