如何在tomcat7-maven-plugin中使用不同的web.xml描述符:运行?

时间:2013-09-26 08:51:22

标签: maven tomcat maven-tomcat-plugin embedded-tomcat-7

我想在我的maven项目中有两个不同的web.xml描述符文件。第一个(默认)应该包含在war文件中以便部署到应用程序服务器,第二个应该用于使用tomcat7-maven-plugin:run进行开发。我知道有<tomcatWebXml>参数,但它指定了我不想改变的Tomcat全局web.xml

对于jetty-maven-plugin:run,我可以指定<webApp>/<descriptor><webApp>/<overrideDescriptor>。首先使用指定文件替换默认web.xml,而第二次应用指定文件内容以及默认web.xml

是否有可能如何使用tomcat7-maven-plugin实现相同的功能?

1 个答案:

答案 0 :(得分:2)

这是一个老问题,但我会写这个,以防其他人在看。

是的,这是可能的。

你可以通过覆盖tomcat7-maven-plugin使用的默认(内置)war-builder,即org.apache.maven.plugins:maven-war-plugin来做到这一点。 通过简单地将该插件添加到您的pom.xml以及额外配置webXml

来完成覆盖

代码看起来像这样

    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <webXml>myPath/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                ... other configurations here
            </configuration>
        </plugin>
        ...
    </plugins>