maven打包排除指定文件(jar包)

在使用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


版权声明:本文为censhenping原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。