Maven war打包时过滤多余文件的办法

使用maven进行WAR打包服务的时候需要将部分多余的项目工程的文件过滤掉可以使用一下办法:

<build>
		<finalName>solr</finalName>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.6</version>
				<configuration>              
					<warSourceExcludes>WEB-INF/weblogic.xml</warSourceExcludes>
					<packagingExcludes>WEB-INF/lib/solr-core-5.3.0.jar</packagingExcludes>
					<webResources>
						
					</webResources>
				</configuration>
			</plugin>
		</plugins>

	</build>

   需要将lib目录中的一个solr -core-5.3.0.jar包过滤掉可以配置packagingExcludes这个节点。

 需要在将web-inf目录下的文件weblogic.xml过滤掉可以使用warSourceExcludes这个节点。

 这个两个配置虽然都是起到过滤文件的效果,但是还是有一点小区别的,那就是packagingExcludes在warSourceExcludes之后起作用。

 

 官方文档中是这样解释的:

  1. packagingExcludes:The comma separated list of tokens to exclude from the WAR before packaging. This option may be used to implement the skinny WAR use case. Note that you can use the Java Regular Expressions engine to include and exclude specific pattern using the expression %regex[]. Hint: read the about (?!Pattern).
  2. warSourceExcludes:The comma separated list of tokens to exclude when copying the content of the warSourceDirectory.

 

 因为warSourceExcludes是在compile阶段生效的,而jar在这个阶段还没有拷贝到目标目录,所以把jar包顾虑配置在warSourceExcludes节点小是没有效果的。

   既然是这样的话,按照一下这样配置也能起到相同的效果:

  

<packagingExcludes>WEB-INF/lib/solr-core-5.3.0.jar,WEB-INF/weblogic.xml</packagingExcludes>

 

 官方文档参考:http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceExcludes

 

你可能感兴趣的:(Maven war打包时过滤多余文件的办法)