在使用maven打包时,有些时候需要排除某些文件或者排除某些jar,不把这个文件和jar打入到war包里面
一、在项目的pom.xml文件里面添加如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webappDirectory>src/main/webapp</webappDirectory>
<workDirectory>${project.build.directory}/work</workDirectory>
<useCache>false</useCache>
<!-- 排除 -->
<packagingExcludes>
WEB-INF/classes/*_jdbc.properties,
%regex[WEB-INF/lib/(?!log4j-1|common-1).*.*.jar]
</packagingExcludes>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
</configuration>
</plugin>
配置说明:
1. WEB-INF/classes/*_jdbc.properties: 过滤 任何前缀的 _jdbc.properties 配置文件(如:我上篇博客自动打不同环境的包中提到的添加的不同环境的jdbc配置文件,那么在打包时候,排除自己添加的这个配置文件)
2. %regex[WEB-INF/lib/(?!log4j-1|common-1)...jar] 通过正在表达式配置打包时,排除除了log4j-1和common-1 的 1.任何版本的jar包。即打包时只添加这两个jar包到war包里面,其他的任何jar都排除不打包进去
(PS:为了tomcat 共享jar包,所以项目中不打jar,当然除了自己项目间相互依赖的jar,比如这个jar会经常自己修改,那么经常修改的,就不排除,打包时候把他们也打进去。对于tomcat如何共享jar包,后续再详细描述)
3. 如果有多个条件,用逗号隔开。对于packagingExcludes 的详细使用,请查看官网:
http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html