maven打war包的时候如何设置不把web-inf下 lib文件夹的jar打包进去

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven打war包的时候如何设置不把web-inf下 lib文件夹的jar打包进去相关的知识,希望对你有一定的参考价值。

各位大侠求解,mavn打包成war,发布的时候里面没有lib文件夹或者不能有jar怎么解决呢

参考技术A war插件有个标签<packagingExcludes>意思是打包时不包含哪些文件,写具体的文件或目录,多个用逗号隔开。
例子:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webappDirectory>WebContent</webappDirectory>
<!-- 必须指定,否则默认会变成在target/war/work 导致被打包进war文件,指定后为target/work -->
<workDirectory>$project.build.directory/work</workDirectory>
<useCache>false</useCache>
<packagingExcludes>WEB-INF/classes/**/*.*,WEB-INF/lib/**/*</packagingExcludes>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
</configuration>
</plugin>本回答被提问者采纳

用maven打包jar项目其中很多模块引用了相同jar包,如何把它些jar公用,让maven打包不把这公用包打进去

我的思路有两条
1,设置maven依赖本地公有jar
2,将公有的jar放到环境变量classpath中去
我试了以上两种方法,可能方法不对,未成功,请方法

注意scope标签,compile和runtime两种依赖打包时会打进去,provided、system、test都不会打进去。如果不想打包时将依赖包含进去,可以按实际情况选择后面的方式。

maven本身引用时,在没有打包前,这些jar都是存储在maven的repository里面给所有项目共享的,这也是maven的目标之一。如下图,请看jar包的路径。

参考技术A maven项目可以分为子父级项目,将公有的jar包用父级项目引用,其子级项目都不需要再重新引用了。 参考技术B 在dependency中加exclusion

以上是关于maven打war包的时候如何设置不把web-inf下 lib文件夹的jar打包进去的主要内容,如果未能解决你的问题,请参考以下文章

mvn打war包以及解压包的方法

eclipse maven 打war包的几种方式

用maven打包jar项目其中很多模块引用了相同jar包,如何把它些jar公用,让maven打包不把这公用包打进去

gradle 打war包的问题(我想编译的时候使用tomcat的jar包,但是打war包的时候不导tomcat的包,如何做)

maven 生成war和jar包的设置

基于SSM搭建网站实现增删改查