2009-11-23 36 views
42

我正在嘗試將一些過濾添加到駐留在WEB-INF目錄中的應用程序上下文文件中。將Maven文件過濾到WEB-INF中

我在文件夾/ src/main/resources中有要過濾的文件(xmlgateway-context.xml)。

我在文件夾中的src/main /過濾器

屬性文件(config-e05.properties)和我有POM設置如下:

<!-- 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正確安裝,但是當我打開輸出war文件時,我期待xmlgateway-context.xml文件位於/ WEB-INF目錄中,但最終會放在/ WEB-INF/classes/WEB-INF文件夾中。

如何將此文件放到正確的位置。

或者,我可以將應用程序上下文放到不同的位置並在那裏引用它。

+0

filteringDeploymentDescriptors我增加了maven- 2標籤,我猜你不介意。 – Bozho 2009-11-23 10:56:44

回答

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正在做什麼。有了這個補充,mvn將過濾src/main/webapp/WEB-INF下的文件,特別是對包含的文件xmlgateway-context.xml進行過濾,並在過濾之後將其推送到WEB-INF文件夾中(這就是target標籤所說的內容)。

如果不清楚就更新。

+0

剪切和粘貼和工作描述。非常。 – Xetius 2009-11-23 11:25:05

+5

只需觀察一下,版本2.4似乎不適用於這個配置,最新的和我使用這個設置的工作是2.3,歡呼聲。 – 2013-08-25 17:40:08

+0

感謝@tomasz_kusmierczyk對於這個觀察 – 2014-03-19 21:47:50

4

您應該通過maven war plugin配置過濾:結帳these examples

+4

如果我可以感謝鏈接,我也會接受這一點,但@peakit因爲剪切和粘貼懶惰而獲勝。 – Xetius 2009-11-23 11:25:43

-1

把文件xmlgateway-context.xml中的SRC /主/ web應用/ WEB-INF和配置是這樣的:

<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

設置爲true

 <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>