14
我有一個運行簡單JavaExec的任務。如何使用Gradle在單個任務中多次執行JavaExec?
我似乎無法正常工作的是能夠在遍歷一個Filetree對象(包含文件)的同時多次運行JavaExec,而每個對象都要一個接一個地傳遞到主JavaExec類中。不幸的是編譯器或代碼生成工具,因爲它不接受一個目錄作爲一個參數,所以我需要傳遞文件作爲一個ARG每個循環。下面是我有:
task generateClasses(type: JavaExec) {
description = 'Generates Json Classes...'
classpath configurations.all
main = "org.apache.gora.compiler.Compiler"
FileTree tree = fileTree(dir: 'src/main')
tree.include '**/*.json'
tree.each {File file ->
println file
args = [ "src/main/json/$file.name", "$buildDir/generated-src/src/main/java" ]
}
}
compileJava.source generateClasses.outputs.files,sourceSets.main.java
從上面它的工作原理和我列出的所有文件,但JavaExec是隻是在最後一次讀取文件時調用過一次。
如何解決上述問題?請幫忙。
顯然打破了上述成單獨的任務和乳寧JavaExec n次將是一個解決方案,但是這使得構建文件太冗長,而不是靈活的(我必須指定路徑的每個文件)。 – user983022