copy
ग्रैडल में spec एक फ़ोल्डर की सामग्री प्रतिलिपि बनाता है यदि from
में निर्दिष्ट पथ एक फ़ोल्डर है।
एक समाधान into
directive का उपयोग कर jar
में लक्ष्य फ़ोल्डर निर्दिष्ट करना है।
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
यह सामग्री या मूल फ़ोल्डर को जार के भीतर उसी नाम के साथ फ़ोल्डर में रखेगा। लेकिन जैसा कि आप देख सकते हैं, आपको into
बंद करने के भीतर फ़ोल्डर नाम दोहराना होगा।
एक और कामकाज इन संसाधन फ़ोल्डरों के लिए मूल फ़ोल्डर होना है और copy
spec में इस मूल फ़ोल्डर का उपयोग करना है।
processResources {
from 'res'
}
इस में फ़ोल्डर बनाने जाएगा public
और data
:
<project-folder>
|
--> res
|
--> public
--> data
फिर processResources
की copy
कल्पना में, आप निम्न कर सकते हैं:
यहाँ एक तरह से आप संसाधन फ़ोल्डरों संरचना सकता है जैसा कि आप चाहते हैं अंतिम जार फ़ाइल।
स्रोत
2015-01-15 16:54:40
क्या "प्रोजेक्ट रूट 'फ़ोल्डर से कॉपी करना और केवल' डेटा 'और' सार्वजनिक 'फ़ोल्डर्स लेना संभव है? –
फ़ोल्डर नामों के लिए फ़िल्टर का उपयोग करना मेरे लिए सही तरीके से काम नहीं करता है। हालांकि मैंने उत्तर को प्राथमिक समाधान के साथ संपादित किया है जिसमें फ़ोल्डरों को फिर से व्यवस्थित करने में शामिल नहीं है। उम्मीद है की वो मदद करदे। मैं सहमत हूं कि 'projectRoot' फ़ोल्डर से _copy कहना आदर्श तरीका है और केवल वही फ़ोल्डर शामिल करें जो मैं चाहता हूं। अगर मैं एक प्राप्त करता हूं तो इसका समाधान पोस्ट करूंगा। –
"इन" समाधान के लिए धन्यवाद। यह कुछ ऐसा था जो मैं ढूंढ रहा था। समस्या यह है कि यह मेरे लिए काम नहीं करता है। मुझे त्रुटि मिलती है "> रूट प्रोजेक्ट पर तर्कों के लिए विधि सार्वजनिक() नहीं मिल सका [build_akni020h40dn3k7vwmwbm63ee $ _run_closure2_closure3 @ 4d266391]" –