如何在使用Maven构建期间替换web.xml?

时间:2014-01-23 13:47:07

标签: java maven tomcat replace web.xml

我遇到了maven的问题。我正在使用tomcat7-maven-plugin将我的战争部署到一个tomcat中并且效果很好。

但是现在我想在将文件发送到servlet容器之前将文件更改为生成的war。可能吗? 特别是我想用另一个更改默认的web.xml。

我已经尝试了maven-resources-plugin,如下所示:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.4.2</version>
  <executions>
    <execution>
        <id>default-copy-resources</id>
        <phase>package</phase>
        <goals>
            <goal>copy-resources</goal>
        </goals>
        <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>${project.build.directory}/${project.artifactId}/WEB-INF/</outputDirectory>
                <resources>
                    <resource>
                        <directory>${project.basedir}/src/main/webapp/ext/WEB-INF</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

但是这个插件只替换目标WEB-INF文件夹中的web.xml,没有任何东西会被改成war文件。 有人可以帮我找到合适的插件来实现我的目的吗?

  

更新:

我决定使用这个:https://stackoverflow.com/a/3298876/2148530

2 个答案:

答案 0 :(得分:2)

您可以在其中定义您的个人资料(在您的pom.xml中),覆盖 maven.war.webxml 属性:

<properties>
    <maven.war.webxml>path/to/your/custom/web.xml</maven.war.webxml>
</properties>

答案 1 :(得分:0)

解决方案(不是我的),取自问题Maven: Customize web.xml of web-app project并带有Maven War PluginwebXml参数。

  

webXml 要使用的web.xml文件的路径。

样本用法

<profiles>
    <profile>
        <id>tomcat</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <webXml>${project.basedir}/src/main/webapp/ext/WEB-INF/web.xml</webXml>
                    </configuration>
                </plugin>
                 ...