因此,我創建了一個檔案,說一場戰爭,然後爲了方便起見,我想另一個名稱不同的副本。事情是我不希望這個複製任務減慢這個相當大的構建的其餘部分。可以異步執行它?如果是這樣,怎麼樣?異步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