的
build.gradle
task hello (type: Copy) {
doLast {
println "print from within"
}
println "print from outside"
}
Run Code Online (Sandbox Code Playgroud)
运行时
gradle -q你好
在 doLast {}封闭甚至没有触及。将doLast更改为doFirst,我得到相同的结果:
D:\>gradle -q hello
print from outside
Run Code Online (Sandbox Code Playgroud)
没有doLast或doFirst:
task hello (type: Copy) {
//doLast{
println "print from within"
//}
println "print from outside"
}
Run Code Online (Sandbox Code Playgroud)
它工作正常:
D:\>gradle -q hello
print from within
print from outside
Run Code Online (Sandbox Code Playgroud)
这似乎仅在复制类型的任务上发生。你能帮忙澄清一下吗?我正在使用gradle 2.4。
如果您在没有-q开关的情况下运行任务,您会注意到该任务已被标记为UP-TO-DATE- 这意味着没有执行任何操作(并且您通过 来添加操作doLast)。
这是为什么?在此特定示例中,您没有为任务配置输入和输出。Copy任务根据输入和输出解决它是最新的,并且由于没有配置 Gradle 假设不需要运行它。
我认为这对来到同一地点的人会有所帮助。尽管以上解释从概念上讲是合理的。答案中没有提到适当的解决方案。这是关于我如何通过执行来完成Copy任务的解决方案doLast。
task hello () {
doLast{
copy {
println "print from within"
}
}
println "print from outside"
}
Run Code Online (Sandbox Code Playgroud)
这将提供复制任务以及doLast的执行。
$ gradle -q hello
print from outside
print from within
希望这是有用的。
| 归档时间: |
|
| 查看次数: |
4957 次 |
| 最近记录: |