2010-12-09 14 views
7

मुझे यकीन है कि यह पहले से पूछा गया है या बहुत सरल है। लेकिन किसी भी कारण से, मैं इसे काम नहीं कर सकता। मैं पर ${build.classpath} (जिसमें जार की एक कोलन पृथक सूची शामिल है) की प्रतिलिपि बनाने के लिए चींटी का उपयोग करना चाहता हूं।एंट कॉपी क्लासपाथ जार निर्देशिका में

मैं अब इस अधिकार है और यह काम करने के लिए प्रतीत नहीं होता:

<copy toDir="${output.dir}/myapp/WEB-INF/lib"> 
    <fileset file="${build.classpath}" /> 
</copy> 

यह एक फ़ाइल के रूप में पूरे classpath व्यवहार करता है। मैं इससे कैसे काम लूं?

उत्तर

12

प्रतिलिपि काम पर चींटी मैनुअल आपकी समस्या के लिए जवाब शामिल हैं। उदाहरण स्निपेट्स में से एक यह प्रदान करता है:

वर्तमान क्लासस्पैट सेटिंग से सभी वस्तुओं को गंतव्य निर्देशिका में एकत्रित करें, निर्देशिका संरचना को फ़्लैट करना।

<copy todir="dest" flatten="true"> 
    <path> 
    <pathelement path="${java.class.path}"/> 
    </path> 
</copy> 
+1

आपको बहुत बहुत धन्यवाद, मैंने इसे किसी भी तरह से अनदेखा कर दिया होगा। यह पूरी तरह से काम किया। यह 'वर्गपाथ' में गंतव्य निर्देशिका में सब कुछ कॉपी करता है। लेकिन 'क्लासपाथ' में ऐसी निर्देशिकाएं या फ़ाइलें हो सकती हैं जो जार नहीं हैं, मैं कुछ भी कैसे बाहर कर सकता हूं जो जार फ़ाइल नहीं है? –

+0

पथ पथ को के साथ बदलें। –

+1

उत्तर का महत्वपूर्ण हिस्सा ** 'flatten =" true "' ** विकल्प है। यदि आप सेट नहीं करते हैं, तो मैं कुछ नहीं करूँगा। – lucasvc

0

मुझे लगता है कि आपको अपने सभी कोलन अलग जार फ़ाइलों को एक रूट फ़ोल्डर में रखना चाहिए। यदि यह संभव नहीं है तो एक अलग कार्य बनाएं जो उन जार फ़ाइलों को एक फ़ोल्डर में रखे (अस्थायी हो सकता है)। और उस फ़ोल्डर में ${build.classpath} असाइन करें। अपनी प्रतिलिपि में <fileset dir="${build.classpath}"/> का उपयोग करें।

मुझे उम्मीद है, इसे मदद करनी चाहिए।

1

मुझे लगता है कि इस तरह somethink काम करना चाहिए:

<copy todir="${output.dir}/myapp/WEB-INF/lib" verbose="yes" flatten="yes" failonerror="no">  
    <fileset dir="${build.classpath}">  
     <include name="*.jar" />  
    </fileset>  
</copy> 

या में वाइल्डकार्ड के साथ शामिल हैं: <include name="**/*.jar" />

+1

क्षमा करें, यह बिल्कुल काम नहीं करता है। 'क्लासपाथ' में पथों की कोलन अलग सूची शामिल है। मेरे लिए अभी तक काम करने वाली एकमात्र चीज 'user268396' का जवाब है। –

संबंधित मुद्दे