`
mozhenghua
  • 浏览: 324596 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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过滤的是webapp目录下存在的资源文件,比如图片,jsp之类的资源文件,而jar包是在这个阶段额外从maven仓库中导入进来的,所以warSourceExcludes对WEB-INFO/lib下的jar包文件过滤是没有效果的。

需要过滤jar包必须要使用packagingExcludes ,配置才能生效。

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

  

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

但是奇怪的是执行mvn war:inplace 的时候还是会将以上设置需要过滤的jar包放置到目标目录中去。 

 

 

 再看一个例子,在工程中如果使用了logback(slf4j作为facade)作为日志记录工具,需要在项目打包的时候将log4j,commons-logging 这些jar包过滤掉,可以采用以下配置:

<configuration>
	<packagingExcludes>
		WEB-INF/lib/commons-logging-*.jar,
		%regex[WEB-INF/lib/log4j-(?!over-slf4j).*.jar]    
       </packagingExcludes>
</configuration>

 

 

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

 

分享到:
评论

相关推荐

    maven 过滤文件夹打包

    "maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的配置文件打包。下面将详细解释这一过程。 在开发环境中,我们通常会有多种配置文件,比如`application-dev....

    maven打包出错解决办法,亲测绝对可以!

    一、Maven打包出错常见原因及解决办法 1. **依赖冲突**:当项目中的多个库引用了不同版本的同一个依赖时,可能导致冲突。解决方法是在pom.xml中明确指定依赖的版本,或者使用 `&lt;dependencyManagement&gt;` 标签来统一...

    maven打包 maven打jar包详细步骤

    3. `mvn install`:此命令在`package`之后,将`target`目录下的打包文件安装到本地Maven仓库。这使得其他本地项目可以通过依赖管理直接引用这个项目,而无需再次编译。 在`maven-war-plugin`和`maven-install-...

    Maven打包,指定classes路径

    当我们处理Web应用程序时,通常会将编译后的类文件(classes)打包到特定的目录结构中,例如`WebContent/WEB-INF/classes`。这个目录结构是符合Java EE规范的WAR包标准布局。现在我们来详细讨论如何使用Maven来实现...

    Maven引入本地Jar包并打包进War包中的方法

    "Maven引入本地Jar包并打包进War包中的方法" Maven是一种流行的项目管理工具,主要用于Java项目的构建、测试和部署。在实际开发中,我们经常需要引入本地Jar包以满足项目的需求。本文将介绍Maven引入本地Jar包并...

    maven打包war配置

    打包WAR文件涉及到Maven的`war`插件,我们可以在`&lt;build&gt;`标签内配置它: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-war-plugin &lt;version&gt;3.3.2&lt;/version&gt; &lt;!-- 指定插件版本 --&gt; ...

    maven生成可执行exe文件

    这将清理旧构建,打包项目,并生成包含所有依赖的JAR文件。然后,`launch4j`会被调用来生成.exe文件。 5. **测试.exe文件** 构建完成后,你可以在项目的目标目录下找到`.exe`文件,双击运行,如果一切配置正确,...

    Java+IDEA+maven混淆打包

    在`pom.xml`文件中,我们需要添加`maven-jar-plugin`插件来打包Java项目。以下是一个基本的配置示例: ```xml &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-jar-plugin &lt;version&gt;3.2.0 ...

    Java+IDEA+Maven混淆打包

    在IT行业中,开发Java应用程序时,我们经常需要将代码打包成可执行的JAR文件,以便于部署和分发。本教程将详细讲解如何在IntelliJ IDEA(IDEA)中利用Maven进行混淆打包,确保代码的安全性并提高可维护性。 首先,...

    maven3.5.4打包文件

    ** Maven 3.5.4 打包工具详解 ** Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它通过使用一种标准的项目对象模型(Project Object Model, POM),自动化构建过程,管理依赖关系,并执行各种生命周期...

    sprintboot maven 打包分离lib jar 资源文件 properties xml yml

    sprintboot maven 打包分离lib jar 资源文件 properties xml yml 详细信息查看我的博客 https://mp.csdn.net/postedit/80274087 java -jar -cp 启动

    maven 一键打包

    例如,通过`&lt;filters&gt;`元素定义变量,然后在资源文件中使用`${var}`占位符,Maven会在打包时自动替换。 ### 总结 "Maven 一键打包"是为了提高开发效率,简化部署流程。通过合理配置Maven POM文件、使用profiles和...

    springboot+maven打包demo【将依赖与配置文件打包到jar包外部】

    在本文中,我们将深入探讨如何使用Spring Boot和Maven来构建一个项目,使得依赖和配置文件被打包到jar包外部,以实现更加灵活的项目管理。这个方法对于那些需要根据不同环境进行定制配置或者频繁更新配置的应用来说...

    maven项目打包

    5. **打包**:执行`mvn package`命令,Maven会将编译后的类和资源打包成JAR或WAR文件,放置在target目录下。 6. **安装到本地仓库**:如果需要在本地仓库中使用,可以执行`mvn install`。 7. **部署**:若需部署到...

    解决Maven资源过滤的pom配置文件

    假设你有一个Maven项目,并且希望在构建时不自动过滤`src/main/java`和`src/main/resources`目录下的所有`.properties`和`.xml`文件。你可以按照上面的示例配置你的POM文件。 例如,如果你的项目结构如下所示: ``...

    maven打包web项目时同时打包为war和jar文件的方法

    maven打包web项目时同时打包为war和jar文件的方法 在Maven项目中,通常情况下,我们只能打包成war文件或jar文件,但是在某些情况下,我们需要同时打包成war和jar文件。今天,我们将介绍如何使用Maven同时打包web...

    Maven打包实战.zip

    在Maven中,打包(package)是核心任务之一,它将编译后的类文件和相关的资源文件打包成特定格式,如JAR、WAR或EAR。这个过程可以通过执行`mvn package`命令来完成。在Eclipse这样的集成开发环境(IDE)中,也可以...

    Maven发布Jar包中文乱码解决方法

    Maven发布Jar包中文乱码解决方法 Maven 是一个基于项目对象模型(Project Object...通过在 pom.xml 文件中添加配置、在 Maven 命令中添加参数、在资源文件中添加配置等方式,可以解决 Maven 发布 Jar 包中文乱码问题。

    maven打包使用yui压缩css和js文件

    在Maven中实现这个功能,我们需要借助maven-assembly-plugin或者maven-war-plugin,但更常见的是使用maven-resources-plugin和maven-compiler-plugin配合yuicompressor-maven-plugin。以下是一个详细的步骤说明: 1...

    maven资源过滤打包后文件变大的处理方法

    但是,在使用Maven进行资源过滤和打包时,经常会遇到文件变大的问题。本文将详细介绍Maven资源过滤打包后文件变大的处理方法,并提供实际示例代码,帮助读者快速解决类似问题。 一、Maven资源过滤机制 Maven资源...

Global site tag (gtag.js) - Google Analytics