我有gradle任务taskA
,该任务在运行时将生成一个html文件。然后taskB
将尝试打开该文件。当我像这样链接这些时:
./gradlew taskA taskB
然后taskB
无法看到生成的文件。顺便说一句,IntelliJ已打开,无法同时看到文件。
但是,如果我分别运行命令,例如
./gradlew taskA
./gradlew taskB
然后taskB可以看到文件正常。您知道我如何将命令链接在一起,从而分别运行它们吗?我已经尝试在clean
的开头使用taskB
,但这无济于事。
答案 0 :(得分:0)
使它工作的方法是cd
回到当前目录。
当您在正确的目录中时,可以使用以下命令来实现:
cd .
这会强制gradle立即拾取任何新文件。
答案 1 :(得分:0)
在Gradle中链接任务的方式是使 taskA 依赖于 taskB 。
您可以执行以下操作:
apply plugin: 'base'
def file = project.file('shared-file.txt')
task taskA {
outputs.file(file)
doLast {
// Create the file
file.text = "Hello world!"
}
}
task taskB(dependsOn: taskA) {
inputs.file(file)
doLast {
// Print file content
println file.text
}
}
要清除文件,您可以运行 cleanTaskA ,它将清除 taskA 定义的所有输出。或者,如果您要将清理添加到常规的 clean 任务中,则添加 clean.dependsOn(cleanTaskA,cleanTaskB)。