2010-07-20 14 views
6

मैं अपने स्टैंडअलोन जावा ऐप्स के लिए मैवेन का उपयोग कैसे करना सीख रहा हूं लेकिन मुझे नहीं पता कि सभी निर्देशिकाओं की एक पुनरावर्ती प्रति/src/main/resource से/taget निर्देशिका में कैसे करें ।maven antrun प्रतिलिपि संसाधन लक्ष्य लक्ष्य निर्देशिका

मैंने एंट्रुन और संसाधन प्लगइन का उपयोग करने की कोशिश की, लेकिन संसाधनों को/लक्ष्य/कक्षाओं में कॉपी किया गया है और लक्ष्य/लक्ष्य नहीं है।

यहां क्या गलत है?

<build> 
    <pluginManagement><plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.4</version> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <configuration> 
     <tasks> 
     <copy todir="${basedir}/target"> 
      <fileset dir="${basedir}/src/main/resources" includes="**/*" /> 
     </copy> 
     </tasks> 
     </configuration> 
     <goals> 
     <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> </pluginManagement> 
</build> 

आपकी सहायता के लिए धन्यवाद।

संपादित करें: मैं "बिन", "लॉग", "conf" जैसे निर्देशिका/निर्देशिकाओं की प्रतिलिपि बनाउंगा, इसलिए मैं ऐप का परीक्षण कर सकता हूं। और, एक और मेवेन कार्य के साथ, सब कुछ पैकेज (जार और बिन/conf/tmp dirs) को ज़िप/tar.gz फ़ाइल में पैकेज करें।

उत्तर

4
  • <plugins ... /> बजाय <pluginManagement ... /> साथ प्रयास करें।
  • परीक्षण करने के लिए लक्षित करने के लिए चीजों की प्रतिलिपि बनाना थोड़ा अजीब लगता है। क्या आप हर बार अपने आवेदन की जांच करने के लिए मेवेन चलाएंगे?
+0

अंत में, यह काम करता है! मैं इसके कारण पागल हो रहा था (मुझे प्लगइन और प्लगइन प्रबंधन के बीच मतभेदों की जांच करनी है) मैं यूनिट टेस्ट करने के लिए मेवेन का भी उपयोग करूंगा, लेकिन मैं संसाधनों (स्थिर फाइलों का एक बाउंस) प्रतिलिपि नहीं करता हूं। आपकी मदद के लिए धन्यवाद। – Antonio

0

मुझे लगता है कि आप गलत तरीके से मेवेन का उपयोग कर रहे हैं।

सामान्य आपको लक्षित करने के लिए संसाधनों की प्रतिलिपि बनाने की आवश्यकता नहीं है। यह स्वचालित रूप से पहले से ही maven द्वारा किया जाता है।

आपको कुछ अतिरिक्त संसाधन है कि परीक्षण की जरूरत है है, तो आप जोड़ सकते हैं

<build> 
    <testResources> 
     <testResource> 
      <directory>${basedir}/src/test/anotherKindOfResourceDir</directory> 
     </testResource> 
    </testResources> 
<build> 

और, जैसा कि lexicore ने कहा, आप pluginManagement उपयोग करने के लिए लगता है कि नहीं कर रहे हैं। "प्लगइन प्रबंधन", बस "निर्भरता प्रबंधन" की तरह, एक "टेम्पलेट" प्रदान करता है जब प्रोजेक्ट वास्तव में उस प्लगइन का उपयोग करें/उस निर्भरता का उपयोग करें। इसका मतलब है, प्लगइन जोड़ना प्रबंधन/निर्भरता प्रबंधन किसी भी प्लगइन को ट्रिगर नहीं करेगा/आपकी परियोजना पर कोई निर्भरता नहीं जोड़ देगा।

+0

आपके उत्तर के लिए भी धन्यवाद, अब मुझे "प्लगइन प्रबंधन" और "प्लगइन" – Antonio

+0

के बीच का अंतर पता है, मुझे लगता है कि मुख्य समस्या वास्तव में प्लगइन प्रबंधन बनाम प्लगइन नहीं है। मुझे लगता है कि आपको यूनिट-टेस्ट संसाधन तैयार करने में ऐसी चीज करने की आवश्यकता नहीं है –

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