2011-11-29 11 views
9

नकल नहीं करता मैं निम्नलिखित के साथ एक pom.xml फ़ाइल है:Maven गैर जावा फ़ाइलों

<sourceDirectory>${basedir}/src/main/test</sourceDirectory> 
<outputDirectory>${basedir}/src/main/bin </outputDirectory> 

${basedir}/src/main/test अंदर मैं कुछ फ़ोल्डरों जो किसी भी जावा फ़ाइलें हो नहीं है। जब मैं संकलन शुरू करता हूं तो उन्हें ${basedir}/src/main/bin निर्देशिका में कॉपी नहीं किया जाता है।

केवल .java फ़ाइलों को स्थानांतरित किया जाता है (पाठ्यक्रम के संकलन के बाद) और सही फ़ोल्डर पर संग्रहीत किया जाता है।

क्या कोई मुझे प्लगइन का उपयोग किए बिना इस समस्या को हल करने में मदद कर सकता है?

मैं

<resources> 
     <resource> 
      <filtering>false</filtering> 
      <directory>${basedir}/src/main/test/scenarios</directory> 
      <includes> 
       <include>*.xml</include> 
      </includes> 
      <targetPath>${basedir}/src/main/bin/scenarios</targetPath> 
     </resource> 

     <resource> 
      <filtering>false</filtering> 
      <directory>${basedir}/src/main/test/sut</directory> 
      <includes> 
       <include>*.xml</include> 
      </includes> 
      <targetPath>${basedir}/src/main/bin/sut</targetPath> 
     </resource> 

    </resources> 

साथ करने की कोशिश की लेकिन यह काम नहीं करता। गलत क्या है?

+1

उपर्युक्त फ़ोल्डर संरचना और कोड स्निपेट के साथ मेरे लिए काम करता है। क्या आपको कोई त्रुटि है? फ़ोल्डरों को 'src/main/bin' में बनाया गया है? क्या आपके पास 'src/main/test' में' * .xml' सामग्री है? – Raghuram

+0

मुझे कोई त्रुटि नहीं है लेकिन मैं काम नहीं करता, निर्देशिका लक्ष्य संकलन स्थिति द्वारा बनाया गया है, क्या यह मुख्य समस्या हो सकती है? – pedr0

+0

'एमवीएन संकलन' लक्ष्य फ़ोल्डर नहीं बनाता है; 'एमवीएन पैकेज 'या' एमवीएन इंस्टॉल 'करता है। सामग्री को प्रतिलिपि बनाने के बाद आप 'src/main/bin' पर क्या करना चाहते हैं? क्या इन्हें 'जार' में जाना चाहिए? यदि ऐसा है तो आपके पास 'मेवेन जार प्लगइन' को अनुकूलित करने के लिए और अधिक काम है। – Raghuram

उत्तर

14

यदि वे जावा फाइल नहीं हैं तो आपको उन्हें src/main/resources और/या src/test/resources निर्देशिका में ले जाना चाहिए। यह गैर जावा फाइलों को संग्रहित करने के लिए मेवेन सम्मेलन है।

आपका अन्य विकल्प maven-resources-plugin का उपयोग करना है।

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
    </plugins> 
    <resources> 
     <resource> 
     <directory>src/main/test</directory> 
      <includes> 
       <include> <the_files_you_want_to_include></include> 
      </includes> 
     </resource> 
    </resources> 

अन्य विकल्प के maven-antrun-plugin का उपयोग करें और मैन्युअल रूप से फ़ाइलों की प्रतिलिपि बनाना एक चींटी कार्य निष्पादित करने के लिए है।

+0

मुझे उन्हें यहां पकड़ने की ज़रूरत है .. एक कामकाज मौजूद है? – pedr0

+0

pedr0: आपको उन्हें वहां रखने की ज़रूरत क्यों है? मेवेन उन्हें अंतिम आर्टिफैक्ट (जार/युद्ध) में सही पैकेज नाम के तहत कॉपी करेगा। तो यदि आप संसाधन कर रहे हैं तो देखो कि ठीक काम करना चाहिए। – CoolBeans

+0

मेरी समस्या यह है कि मुझे जेएस सिस्टम के साथ काम करना है जिसमें एक विशेष फ़ोल्डर संरचना होनी चाहिए। – pedr0

1

आप maven संसाधन प्लगइन का उपयोग कर संसाधन निर्देशिका के रूप में src/main/test जोड़ सकते हैं। मूल जानकारी के लिए http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html और केवल कुछ फ़ाइलों सहित जानकारी के लिए http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html देखें (क्योंकि आप अपनी .java फ़ाइलों की प्रतिलिपि नहीं बनाना चाहते हैं)

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