Tôi có một nhiệm vụ chạy một JavaExec đơn giản.Làm thế nào để thực thi JavaExec nhiều lần trong một tác vụ bằng Gradle?
Điều tôi không thể làm là khả năng chạy JavaExec nhiều lần trong khi lặp lại đối tượng Filetree (chứa các tệp) mỗi khi tôi muốn chuyển từng lớp JavaExec chính. Thật không may trình biên dịch hoặc công cụ tạo mã vì nó không chấp nhận một thư mục như là một arg vì vậy tôi cần phải vượt qua các tập tin như một arg mỗi vòng lặp. Dưới đây là những gì tôi có:
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
Từ trên nó hoạt động và tôi nhận được tất cả các file được liệt kê nhưng JavaExec là được gọi là chỉ một lần trên tập tin cuối cùng đọc.
Làm cách nào để giải quyết vấn đề trên? Hãy giúp tôi.
Rõ ràng là phá vỡ các công việc riêng biệt và chạy JavaExec n lần sẽ là một giải pháp nhưng điều này làm cho tệp xây dựng quá dài và không linh hoạt (tôi phải chỉ định đường dẫn đến từng tệp). – user983022