在执行多个Gradle任务之前创建一个目录
我有几个任务需要在执行多个Gradle任务之前创建一个目录,gradle,Gradle,我有几个任务需要build子目录才能存在 实现这一目标的最佳方式是什么 到目前为止,我有: afterEvaluate { mkdir "$buildDir/work" } 这是: task prepareDirs { mkdir "$buildDir/test" } 第二个可以工作,因为它是在配置阶段运行的,所以我不需要依赖于所有需要它的任务 还有其他选择吗 mkdir是正确的方法吗 在什么时候创建buildDir?我可以延长这项任务吗 编辑:我注意到,如果我在主任务之
build
子目录才能存在
实现这一目标的最佳方式是什么
到目前为止,我有:
afterEvaluate {
mkdir "$buildDir/work"
}
这是:
task prepareDirs {
mkdir "$buildDir/test"
}
第二个可以工作,因为它是在配置阶段运行的,所以我不需要依赖于所有需要它的任务
- 还有其他选择吗李>
是正确的方法吗mkdir
- 在什么时候创建
?我可以延长这项任务吗buildDir
编辑:我注意到,如果我在主任务之前在命令行上链接clean任务,这两个任务都会失败。以下应该可以工作。请注意,
prepareDirs
必须具有约束mustRunAfter clean
,才能解决您在编辑中提到的问题
// 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
}