导读
由于项目需要,在需要打包的时候,由于引入的外部jar在本地是可以使用的,但是当打包后启动时报错,找不到对应的类。
使用
1、引入外部jar包
项目中建立文件夹lib
可以在项目根目录下建立一个libs文件夹,将jar包扔进去
在配置文件中引用
1 | <dependency> |
加完这一段,使用Maven打包命令生成的jar包,解压后,可以看到BOOT-INF/lib
目录中已经包含了abc.jar
2、项目打包
遇到问题
此时只有当前模块的jar中包含了abc.jar,但是主入口模块的jar包中并不存在abc.jar,执行打包后的主入口jar时会报错:NoClassDefFoundError。
解决方案
解决方式很简单,只需要在pom.xml里面配置下 includeSystemScope
就行。
1 | <plugin> |
使用Maven命令打包后,可以看到主入口的jar包中,BOOT-INF/lib
目录已经包含了abc.jar
注意: <plugin>
这段代码不是加在当前的Maven子模块,而是加在入口的Maven模块。
比如主入口模块web,引入了子模块common,而common模块中dependency一个本地jar包,那么<plugin>
这段代码应该放在web模块的pom.xml文件中。