Web.xml没有包含在使用mvn插件的War中

时间:2015-04-30 06:44:50

标签: java maven plugins dependency-management

我正在尝试将web.xml包含在战争中。

以下是我的pom.xml的样子,我已将maven-resources-pluginmaven-war-plugin添加到pom

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.5</version>
  <executions>
    <execution>
      <id>copy-web.xml</id>
      <phase>process-resources</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <outputDirectory>${basedir}/war/WEB-INF</outputDirectory>
        <resources>
          <resource>
            <directory>src/main/webapp/WEB-INF/</directory>
            <filtering>true</filtering>
            <includes>
              <include>web.xml</include>
            </includes>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <configuration>
    <webXml>${basedir}/war/WEB-INF/web.xml</webXml>
  </configuration>
</plugin>

<plugin>
  <artifactId>maven-clean-plugin</artifactId>
  <version>2.3</version>
  <configuration>
    <filesets>
      <fileset>
        <directory>tomcat</directory>
      </fileset>
      <fileset>
        <directory>war/WEB-INF/classes</directory>
      </fileset>
      <fileset>
        <directory>war/WEB-INF/lib</directory>
      </fileset>
    </filesets>
  </configuration>
</plugin>

但是,当我在这里提取战争是我得到的

/tomcat/work/Catalina/localhost/XProject/WEB-INF
/tomcat/work/Catalina/localhost/XProject/WEB-INF/classes
/tomcat/work/Catalina/localhost/XProject/WEB-INF/lib

我做错了什么?

2 个答案:

答案 0 :(得分:1)

我使用过多次maven-war-plugin。这是代码片段。如果您的文件夹结构中存在web.xml,则将包括web.xml,否则忽略。

我认为您的代码片段中存在的问题可能与web.xml的相对路径有关。使用以下maven-war-plugin解决您的问题

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>

答案 1 :(得分:1)

添加warsourcedirectory标记。

    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <warSourceDirectory>WebContent</warSourceDirectory>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>