在使用maven构建项目的war包时,有时并不需要src/webapp/WEB-INF/下的一些文件。

这时可以通过maven-war-plugin创建配置来排除这些文件。下面贴出我平时使用的pom.xml文件

 

配置信息在 project -> build -> plugins -> plugin -> maven-war-plugin

 


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.xank</groupId>
<artifactId>zheng</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>

<name>security Maven Webapp</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<finalName>zheng</finalName>
</properties>

<repositories>
<repository>
<id>nexus</id>
<name>MZONE</name>
<url>http://www.xank.com.cn/nexus/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- 设置war包名称 -->
<finalName>/${finalName}</finalName>
<resources>
<!-- 包含hbm.xml(或者将xhm.xml放到resource中) -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.hbm.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
<include>**/*.txt</include>
</includes>
</resource>
</resources>
<plugins>
<!-- web 目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<excludes>
<exclude>**/WEB-INF/web.xml</exclude>
</excludes>
<directory>src/webapp</directory>
</resource>
</webResources>
<failOnMissingWebXml>false</failOnMissingWebXml>
            <!-- 下面两个配置没有生效,这里贴出是表示提醒
<packagingExcludes>src/webapp/WEB-INF/web.xml</packagingExcludes>
<warSourceExcludes>src/webapp/WEB-INF/web.xml</warSourceExcludes>
-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/${project.artifactId}</path>
<url>http://127.0.0.1:8081/manager/text</url>
<server>tomcat7</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- 快速部署 (结合部署脚本使用) -->
<id>deploy</id>
<properties>
<finalName>security</finalName>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<target>
<copy todir="${basedir}/target/classes/" overwrite="true">
<fileset dir="${basedir}/release/deploy/resources/" />
</copy>
<!-- 目的路径不能写成 ${basedir}src/webapp/WEB-INF/ 会造成文件修改 -->
<copy todir="${basedir}/target/${project.artifactId}/WEB-INF/" overwrite="true">
<fileset dir="${basedir}/release/deploy/WEB-INF/" /> </copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>