मेरे पास एक ऐसा कार्य है जो एक सरल JavaExec चलाता है।Gradle का उपयोग कर एक ही कार्य में JavaExec कई बार निष्पादित करने के लिए कैसे?
जो मैं काम नहीं कर पा रहा हूं वह जावाटेक्स ऑब्जेक्ट को कई बार चलाने के लिए एक फ़ाइलट्री ऑब्जेक्ट (फाइलें युक्त) को चलाने की क्षमता है, जबकि मैं मुख्य जावाएक्सैक क्लास में एक-एक करके पास करना चाहता हूं। दुर्भाग्यवश संकलक या कोड जनरेशन टूल के रूप में यह एक निर्देशिका को एक तर्क के रूप में स्वीकार नहीं करता है, इसलिए मुझे फ़ाइल प्रति लूप के रूप में फ़ाइल को पास करने की आवश्यकता है। यहाँ मैं क्या है:
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 है केवल आखिरी फाइल पढ़ने पर एक बार कहा जाता है।
मैं उपरोक्त को कैसे संबोधित करूं? कृपया मदद करे।
जाहिर है अलग कार्यों में ऊपर तोड़ने और runing JavaExec n बार एक समाधान होगा, लेकिन इस बिल्ड फ़ाइल बहुत वर्बोज़ और नहीं लचीला (मैं प्रत्येक फ़ाइल के लिए पथ निर्दिष्ट करने के लिए है) बनाता है। – user983022