2011-03-07 11 views
9

से फ़ाइल को बाहर निकालें मेरे पास फ़ाइल src/main/webapp/META-INF/context.xml के साथ एक वेब अनुप्रयोग है जिसमें डेटाबेस का परीक्षण करने के लिए कुछ कॉन्फ़िगरेशन शामिल है। उत्पादन सर्वर पर यह फ़ाइल $ TOMCAT_HOME/conf/Catalina/localhost/ROOT.xml में है और मैं एम्बेडेड टॉमकैट के साथ परीक्षण कर रहा हूं इसलिए मैं इस फ़ाइल को पैकेज नहीं करना चाहता हूं। मैं इस फ़ाइल को मैवेन बिल्ड से बाहर करना चाहता हूं।मेवेन बिल्ड

<build> 
    ... 
    <resources> 
    <resource> 
     <directory>src/main/webapp/META-INF</directory> 
     <filtering>true</filtering> 
     <excludes> 
     <exclude>context.xml</exclude> 
     </excludes> 
    </resource> 
    </resources> 
</build> 

और भी निम्न:।

<build> 
    ... 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <resources> 
     <resource> 
      <directory>src/main/webapp/META-INF</directory> 
      <filtering>true</filtering> 
      <excludes> 
      <exclude>context.xml</exclude> 
      </excludes> 
     </resource> 
     </resources> 
    </configuration> 
    </plugin> 
</build> 

लेकिन फ़ाइल अभी भी युद्ध में और निर्माण निर्देशिका में पैक किया जाता है (उदाहरण के लिए लक्ष्य/MyApp-1.0-SNAPSHOT/META-INF/संदर्भ मैं निम्नलिखित की कोशिश की .xml)। मैं क्या गलत कर रहा हूं?

उत्तर

18

आप packagingExcludes पैरामीटर

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <packagingExcludes>META-INF/context.xml</packagingExcludes> 
      </configuration> 
     </plugin> 

का उपयोग कर निर्माण से एक संसाधन बाहर करने के लिए कोशिश कर सकते हैं, प्रश्न के पहले टुकड़ा, ठीक लग रहा है कि resourcedirectory का निरपेक्ष पथ निर्दिष्ट किया जाना चाहिए को छोड़कर। उदाहरण के लिए

<directory>${basedir}/src/main/webapp/META-INF</directory> 
+0

एक आकर्षण की तरह काम करता है। धन्यवाद। क्या इसे किसी भी तरह से निर्माण से पूरी तरह से बाहर करना संभव है? मेरा मतलब बिल्ड निर्देशिका से भी है (उदाहरण के लिए लक्ष्य/myapp-1.0-SNAPSHOT)। अगर मुझे नहीं लगता कि मैं युद्धों की नकल के साथ रह सकता हूं। – woky

+0

@woky। अतिरिक्त क्वेरी – Raghuram

+0

@Raghuram के जवाब में अद्यतन उत्तर: दुर्भाग्यवश यह काम नहीं करता है। (माई मेवेन संस्करण: अपाचे मेवेन 3.0.2 (आर 1056850; 2011-01-09 01: 58: 10 + 0100))। – woky

0

हाल ही में मुझे persistence.xml के साथ एक ही समस्या थी। अपने पोम में इस डाल का प्रयास करें:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
     <excludes> 
      <exclude>META-INF/context.xml</exclude> 
     </excludes> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

यदि यह मदद नहीं करता है, Maven युद्ध प्लगइन साथ Maven-जार-प्लगइन की जगह का प्रयास करें।

2

दूसरों मुख्य सवाल का जवाब दे दिया है, लेकिन एक अन्य विस्तार मैं अपने मूल का प्रयास समाधान से देखा -

 <filtering>true</filtering> 

Maven में, "संसाधन छानने" मतलब यह नहीं है क्या आप शायद लगता है कि यह मायने रखता है। यह संसाधनों को शामिल/बहिष्कृत करने के बारे में नहीं है बल्कि यह कि एम्बेडेड वैरिएबल संदर्भों को भरने के लिए संसाधित किया जाना चाहिए या नहीं।

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

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