因此,我创建了一个档案,说一场战争,然后为了方便起见,我想另一个名称不同的副本。事情是我不希望这个复制任务减慢这个相当大的构建的其余部分。可以异步执行它?如果是这样,怎么样?异步gradle复制任务?
回答
import java.util.concurrent.*
...
def es = Executors.newSingleThreadExecutor()
...
war {
...
doLast{
es.submit({
copy {
from destinationDir.absolutePath + File.separator + "$archiveName"
into destinationDir
rename "${archiveName}", "${baseName}.${extension}"
}
} as Callable)
}
}
这样做吗?有用。该文件被复制,但IDK如何测试以查看它是否实际上是一个异步副本。 – user447607
在发生其他事情之前,doLast可以防止它被解雇。就像创造需要复制的战争一样。 – user447607
阅读以上内容,我刚刚回答了我自己的问题。 – user447607
在某些情况下,为此使用parallel execution feature非常方便。它仅适用于多项目构建(您要并行执行的任务必须位于不同的项目中)。
project('first') {
task copyHugeFile(type: Copy) {
from "path/to/huge/file"
destinationDir buildDir
doLast {
println 'The file is copied'
}
}
}
project('second') {
task printMessage1 << {
println 'Message1'
}
task printMessage2 << {
println 'Message2'
}
}
task runAll {
dependsOn ':first:copyHugeFile'
dependsOn ':second:printMessage1'
dependsOn ':second:printMessage2'
}
默认输出:
$ gradle runAll
:first:copyHugeFile
The file is copied
:second:printMessage1
Message1
:second:printMessage2
Message2
:runAll
输出与--parallel
:
$ gradle runAll --parallel
Parallel execution is an incubating feature.
:first:copyHugeFile
:second:printMessage1
Message1
:second:printMessage2
Message2
The file is copied
:runAll
由于dbUnit存在一些技术债务,我们无法使用它。问题是,真的没有理由不能并行复制文件,所以我宁愿写它,以便它始终如此。 – user447607
- 1. 在gradle中复制任务
- 2. 异步任务从api的异步任务不运行异步
- 3. 异步任务
- 4. 异步任务
- 5. 异步任务vs任务
- 6. 呼叫异步任务反复
- 7. android异步任务
- 8. 块异步任务
- 9. 异步任务,BufferedReader
- 10. SignalR异步任务
- 11. 动态gradle复制任务不执行任务主体
- 12. Rails执行任务异步控制器
- 13. 异步任务VS异步无效
- 14. Dired复制异步
- 15. 使用异步任务取消任务
- 16. 异步任务中的getInputStream任务
- 17. 异步传播异步运行异步任务
- 18. 任务异步c#编程
- 19. 麻烦异步任务
- 20. 异步任务超时?
- 21. c中的异步任务#
- 22. ANR执行异步任务
- 23. ASP.NET中的异步任务
- 24. 异步任务android onPostExecute
- 25. Rails推迟/异步任务
- 26. Ejabberd Erlang和异步任务
- 27. 终止异步任务
- 28. 异步任务超时
- 29. 的Android异步任务NetworkOnMainThreadException
- 30. 异步任务更新UI
不知道,如果这个实际工作,但你可以试试看:HTTP:/ /stackoverflow.com/a/38528039/745574 – RaGe
真的很好@RaGe,感谢您找到这个! – Opal
我想我有这个工作。多谢你们。 :-)你想作为答案发布吗? – user447607