2009-04-29 10 views
31

नकल नहीं करता है मैं अपने खुद के build.xml है जो बनाया। जब मैं चींटी रन को कॉल करता हूं तो यह मेरे एप्लिकेशन को संकलित करता है और चलाता है, लेकिन मेरे एप्लिकेशन में आइकन के साथ एक पैकेज है और इसे "बिल्ड" फ़ोल्डर में स्थानांतरित नहीं किया गया है, इसलिए मेरा एप्लिकेशन अपवाद के साथ समाप्त होता है कि यह मेरे आइकन का पता नहीं लगा सका। जब मैं उन्हें अपने आप से ले जाता हूं तो यह काम करता है।चींटी संकलन संसाधनों

मैं

<copy todir="build/app/icons"> 
    <fileset dir="src/app/icons"/> 
</copy> 

यह काम करता है का उपयोग करने की कोशिश की, लेकिन मैं प्रतिलिपि आदेश के बिना यह करने के लिए करना चाहते हैं। क्या जावैक के लिए कोई पैरामीटर है? या कुछ और?

उत्तर के लिए धन्यवाद।

उत्तर

23

क्षमा करें, आपको मैन्युअल रूप से गैर-जावा फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता होगी। संसाधन तकनीकी रूप से "स्रोत" नहीं हैं। कमांड लाइन javac संसाधन स्रोत फ़ाइलों को आपकी स्रोत निर्देशिका से आउटपुट निर्देशिका में कॉपी नहीं करेगा, न ही चींटी का जाव कार्य करेगा।

+0

ऐसा लगता है कि चींटी के माध्यम से ग्रहण जावा कंपाइलर में हुकिंग आउटपुट निर्देशिका में गैर जावा फ़ाइलों को स्वतः कॉपी करेगा। जब मैंने जैवैक चींटी कार्यों का उपयोग करने के लिए स्विच किया, तो मुझे क्रिस विंटर ने सुझाव दिया था। –

+0

इस उत्तर को लिखने के बाद से मैंने जावा परियोजनाओं के लिए मेवेन का उपयोग करके लगभग विशेष रूप से बदल दिया है। एक निर्णायक खड़ी सीखने की वक्र बनाम चींटी है, लेकिन यह बहुत लायक है। –

4

नहीं, ऐसा नहीं है। कॉपी कार्य आपके बिल्ड फ़ोल्डर्स में संसाधनों की प्रतिलिपि बनाने का सही तरीका है।

43

ऐसा कोई पैरामीटर नहीं है। आप के साथ अपने निर्देशिका के बीच फ़ाइलों के सभी प्रकार की नकल कर सकते हैं:

<copy todir="build"> 
    <fileset dir="src" 
      includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" /> 
</copy> 
+18

अधिक सरल: –

+0

शामिल करने के बजाय = "**/*। जावा" को छोड़ दें बस मैं चाहता था! (जावा को शामिल करना या बहिष्कृत करना है या नहीं, डीरग के लिए महान जार के साथ स्रोत को शिप करने के लिए कुछ भी शामिल न करें।) –

+6

बाहर नहीं छोड़ा गया है लेकिन इसमें शामिल नहीं है: chrise

11

आप इस jar कार्य की fileset तत्व का उपयोग करने के बजाय फ़ाइलों को मैन्युअल को कॉपी कर सकते हैं। उदाहरण के लिए:

<jar destfile="dist/app.jar" basedir="build"> 
    <fileset dir="src" includes="app/icons/**" /> 
</jar> 

यह सब कुछ src/app/icons/ में app/icons पथ के लिए अपने .jar फ़ाइल में कॉपी कर देंगे।

+0

अन्य उत्तरों आपको बताते हैं कि यह क्यों नहीं किया जा सकता है। यह आपको बताता है कि इसे कैसे करें। और यह काम करता है। यह ऊपर उठाया जाना चाहिए। – philburk