gpt4 book ai didi

gradle - 在多个 Gradle 任务之前创建一个目录

转载 作者:行者123 更新时间:2023-12-03 03:41:48 24 4
gpt4 key购买 nike

我有几个任务需要 build 的子目录存在。

实现此目标的最佳方法是什么?

到目前为止我有这个:

afterEvaluate {
mkdir "$buildDir/work"
}

还有这个:

task prepareDirs {
mkdir "$buildDir/test"
}

第二个之所以有效,是因为它在配置阶段运行,所以我不需要将 dependsOn 放在所有需要它的任务上。

  • 还有其他选择吗?
  • mkdir 是正确的方法吗?
  • 什么时候创建buildDir?我可以延长该任务吗?

编辑:我注意到如果我在主要任务之前在命令行上链接干净任务,这两个都会失败。

最佳答案

以下应该有效。请注意,prepareDirs 必须具有约束 mustRunAfter clean,才能解决您在 EDIT 中提到的问题

// task responsible to create the tmp/work dir
task prepareDirs {
mustRunAfter clean
doLast {
mkdir "$buildDir/work"
}
}

// make all tasks depend on the prepareDirs task
// exept 'clean' and 'prepareDirs' (avoid circular dependency)
tasks.each {
if (it != prepareDirs && it != clean) {
it.dependsOn prepareDirs
}
}

如果您没有太多任务需要build/work 目录并且不想让所有任务都依赖于您的prepareDirs 任务,您可以这样做那:

[myTask1, myTask2, myTask3].each {
it.dependsOn prepareDirs
}

关于gradle - 在多个 Gradle 任务之前创建一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52683232/

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