需求:项目要在测试环境发布,所以要打包。但多次尝试后发现自己引入的jar始终打不进去,导致启动报错。so...问题排查开始!
我的环境:idea、maven、jdk8;
项目结构:如下图,libs的三个jar包是自己额外引入的,因为在maven私服中不曾找得到它们、也不想重新上传。
先来看直接打包结果:
我自定义引入的jar包是zap-api.***的,按理说应该会按序排在最后一位(为了篇幅没有截全部的,上下翻动也是没有这个jar包的)。
* 这里我使用一个反解析jar包的小工具,可直接查看打包的jar中内容。附链接,有需要的可直接提取:
链接:https://pan.baidu.com/s/1MuhnYLA7ykqio0337LrQcg
提取码:y7ld
然后就要思考...为什么打不进去呢?原因只有一个,没找到。程序找不到你自定义jar的地址。
<!--将自定义目录的jar包一起打包-->
<resources>
<resource>
<directory>libs</directory> <!--自定义jar包在项目中的目录-->
<targetPath>BOOT-INF/lib</targetPath> <!--打包目标存放路径-->
<includes>
<include>**/*.jar</include> <!--筛选文件类型-->
</includes>
</resource>
</resources>
如上。需要在pom.xml中加上resource代码段。打包时才能获取到你自定义的jar目录,而后便被一起打入项目的jar包中。
加上配置后的打包结果:
看,自定义的jar的其中一个已经在打包的目录中了,其他两个自然也在了(没看出来的话请仔细查阅本文的截图片段!)。
告成~