0
我們已經有一個將cobol編譯爲java的gradle項目。這是通過被從gradle這個任務調用一個參數(文件名)一個批處理文件發生:gradle parallel exec命令行
def compileSingleFile(String cblFileName) {
exec {
commandLine "${projectDir}/compileFile.bat"
args "${cblFileName}"
ignoreExitValue = true
}
}
目前,我們通過的文件列表循環,每個文件都被陸續編譯:
task ciBuild {
dependsOn collectFiles
doLast {
cobolfiles.parallelStream().each {file ->
if(file.toUpperCase().endsWith("CBL")) {
compileSingleFile(file)
}
}
}
}
gradle是否有可能在一個線程池中運行此任務?例如每個編譯另一個文件的10個線程?直到列表爲空?
預先感謝您!
我需要設置類似「maxParallelForks」什麼? –
我個人不喜歡'parallelStream()',因爲我無法控制線程池。你可能會使用[Executors.newFixedThreadPool(int)](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newFixedThreadPool(int))和一個[ CountDownLatch](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html)如果你想完全控制 –