मैं एक काम मैं Gradle के लिए एक चींटी निर्माण में है कन्वर्ट करने के लिए कोशिश कर रहा हूँ:एंड्रॉयड + Gradle: एक फ़ाइल में सूची निर्देशिका
<target name="index-assets" depends="copy-assets">
<path id="assets.path">
<!-- contexts (and surplus) -->
<dirset id="assets.dirset" dir="assets/" defaultexcludes="yes"/>
<!-- assets -->
<fileset id="assets.fileset" dir="assets/" includes="**" excludes="asset.index" defaultexcludes="yes"/>
</path>
<pathconvert pathsep="${line.separator}" property="assets" refid="assets.path" dirsep="/">
<mapper>
<globmapper from="${basedir}/assets/*" to="*" handledirsep="yes"/>
</mapper>
</pathconvert>
<echo file="assets/asset.index">${assets}</echo>
</target>
<target name="-pre-build" depends="index-assets"/>
मुझे लगता है कि मैं अभी भी कर रहा हूँ पूरी तरह से बुनियादी Gradle अवधारणाओं लोभी नहीं है, लेकिन यहाँ मैं क्या करने की कोशिश की है:
task indexAssets << {
def assets = file("assets")
def contexts = files(assets)
inputs.file(assets)
outputs.file("assets/assets-gradle.index")
def tree = fileTree(dir: 'assets', include: ['**/*'], exclude: ['**/.svn/**', 'asset.index'])
contexts.collect { relativePath(it) }.sort().each { println it }
tree.collect { relativePath(it) }.sort().each { println it }
}
- पेड़ ठीक है, लेकिन केवल फ़ाइल (पत्ती) पथ शामिल
- मैं सिर्फ सरल CLE प्राप्त नहीं कर पा रहे हालांकि निर्देशिकाओं (संदर्भ) की एक सूची। मैंने कई अन्य रूपों (पेड़, शामिल/बहिष्कृत) की कोशिश की, लेकिन मुझे या तो उस निर्देशिका में एक फ़ाइल मिलती है, निर्देशिका का नाम स्वयं या कुछ नहीं। मैं बस 'परिसंपत्तियों' डीआईआर में मिली निर्देशिकाओं की एक साधारण सूची चाहता हूं।
अभी के लिए मैं बस पथ मुद्रित करने की कोशिश कर रहा हूं, लेकिन मैं इसे बाद में फ़ाइल में लिखने का उचित तरीका जानना चाहूंगा (जैसे एएनटी की गूंज फ़ाइल)।
अद्यतन:
यह ग्रूवी टुकड़ा उस हिस्से (+ SVN फिल्टर) कर रहा है, लेकिन मैं नहीं बल्कि इस कार्य को करने का एक और अधिक "Gradley" रास्ता खोजने चाहते हैं। यह एक पूर्व संस्करण निर्भरता के रूप में बाद में एक निर्माण संस्करण के संदर्भ में चलाता है। (नोट: मैं के बाद से मुझे लगता है मैं इस काम के लिए है कि परियोजना के संदर्भ में नहीं कर रहा हूँ इस हैक में पथ के भाग के रूप 'प्रोजेक्ट' को निर्दिष्ट करने के लिए किया था)def list = [] def dir = new File("Project/assets") dir.eachDirMatch (~/^(?!\.svn).*/) { file -> list << file } list.each { println it.name }
यह दुर्भाग्य नहीं रह गया है Gradle 2.0 – Adam
उपयोग tasks.withType (JavaCompile) tasks.withType (संकलित) के बजाय साथ संकलित यह Gradle 2.x –
साथ काम करने के लिए आप फ्लश और फ़ाइल को बंद करने के लिए भूल नहीं हैं ? –