2009-11-23 10 views
42

में मैवेन फ़ाइलों को फ़िल्टर करना मैं एप्लिकेशन संदर्भ फ़ाइल में कुछ फ़िल्टरिंग जोड़ने की कोशिश कर रहा हूं, जो वेब-आईएनएफ निर्देशिका में रहता है।WEB-INF

मेरे पास फ़ाइल है जो फ़ोल्डर/src/main/संसाधनों में फ़िल्टर किया गया है (xmlgateway-context.xml)।

मैं में फ़ोल्डर src/मुख्य/फिल्टर

गुण फ़ाइलें (config-e05.properties) है और मैं पोम सेट अप के रूप में निम्नानुसार है:

<!-- environment profiles --> 
<profiles> 
<profile> 
    <id>e04</id> 
    <properties> 
    <targetenv>e04</targetenv> 
    </properties> 
</profile> 
<profile> 
    <id>e05</id> 
    <properties> 
    <targetenv>e05</targetenv> 
    </properties> 
</profile> 
</profiles> 

<!-- build settings (filtering) --> 
<build> 
<filters> 
    <filter>src/main/filters/config-${targetenv}.properties</filter> 
</filters> 
<resources> 
    <resource> 
    <targetPath>WEB-INF</targetPath> 
    <filtering>true</filtering> 
    <directory>src/main/resources</directory> 
    </resource> 
</resources> 
</build> 

यह सही ढंग से स्थापित mvn होगा , लेकिन जब मैं आउटपुट वॉर फ़ाइल खोलता हूं, तो मुझे फ़ाइल xmlgateway-context.xml को/WEB-INF निर्देशिका में होने की उम्मीद थी, लेकिन यह फ़ोल्डर/WEB-INF/classes/WEB-INF में समाप्त होता है।

मैं इस फ़ाइल को सही जगह पर कैसे प्राप्त कर सकता हूं।

वैकल्पिक रूप से, क्या मैं एप्लिकेशन संदर्भ को एक अलग स्थान पर रख सकता हूं और इसे संदर्भित कर सकता हूं।

+0

करने के लिए सेट filteringDeploymentDescriptors के साथ मैं maven- जोड़ा 2 टैग, मुझे लगता है कि आपको कोई फर्क नहीं पड़ता। – Bozho

उत्तर

85
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <webResources> 
       <resource> 
        <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
        <filtering>true</filtering> 
        <targetPath>WEB-INF</targetPath> 
        <includes> 
         <include>**/xmlgateway-context.xml</include> 
        </includes> 
       </resource> 
      </webResources> 
     </configuration> 
    </plugin> 
</plugins> 

उपरोक्त को अपने pom.xml में जोड़ें। संपादित करें: बस यह बताने के लिए कि उपरोक्त conf क्या कर रहा है। इस जोड़े के साथ, एमवीएन src/main/webapp/WEB-INF के तहत फ़ाइलों को फ़िल्टर करने जा रहा है और विशेष रूप से शामिल फ़ाइलों को xmlgateway-context.xml फ़िल्टर करें और फ़िल्टरिंग के बाद यह WEB-INF फ़ोल्डर में फ़ाइलों को धक्का दे रहा है (target टैग क्या कह रहा है)।

अगर कुछ स्पष्ट नहीं है तो अपडेट करें।

+0

कट और पेस्ट और वर्णित के रूप में काम करता है। ता काफी – Xetius

+5

बस जोड़ने के लिए एक अवलोकन, संस्करण 2.4 इस कॉन्फ़िगरेशन के साथ काम नहीं कर रहा है, सबसे हालिया और इस सेटिंग के साथ काम करना मुझे 2.3, चीयर्स मिला। –

+0

इस अवलोकन के लिए @tomasz_kusmierczyk धन्यवाद –

4

आपको maven war plugin के माध्यम से फ़िल्टरिंग कॉन्फ़िगर करना चाहिए: चेकआउट these examples

+4

अगर मैं लिंक के लिए धन्यवाद कर सकता हूं तो भी इसे स्वीकार कर लिया होगा, लेकिन @peakit मेरे लिए आलसी कटौती और पेस्ट करने के कारण जीतता है। – Xetius

-1

src/मुख्य/webapp/वेब-INF में फ़ाइल xmlgateway-context.xml रखो और इस तरह कॉन्फ़िगर करें:

<build> 
    <filters> 
     <filter>src/main/filters/config-${targetenv}.properties</filter> 
    </filters> 
    <resources> 
     <resource> 
       <filtering>true</filtering> 
       <directory>src/main/webapp/WEB-INF</directory> 
     </resource> 
    </resources> 
</build> 
0

सच

 <build> 
     <finalName>web-project-name</finalName> 
     <filters> 
      <filter>src/main/resources/app.properties</filter> 
     </filters> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
        <compilerArguments> 
         <endorseddirs>${endorsed.dir}</endorseddirs> 
        </compilerArguments> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
        <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> 
       </configuration> 
      </plugin>   
     </plugins> 
    </build>