1、概述
大家好,我是欧阳方超,可以关注我的公众号“欧阳方超”,后续内容将在公众号首发。
项目中需要使用的一个jar包是第三方厂商提供的,在maven仓库中没有,一般这样的jar通常称为本地jar,这样的jar的使用有两种方式,一种是使用mvn install命令将其安装到本地仓库,另一种是在项目中建一个目录,然后将其放到新建的目录中,在dependency中进行引用,由于我的事故就出现在第二种方式中,因此本文主要介绍第二种方式的具体操作。
2、解决过程
2.1、问题描述
项目引入第三方jar,打包可以通过,但是启动时报错——类找不到。
我是这样引入第三方jar包的,
<dependency>
<groupId>com.thunisoft</groupId>
<artifactId>authority-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/xxx-api-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
2.2、原因
上面的方式引入第三方jar,在项目打包部署时,system类型的依赖并不会打包到最终的jar中。
2.3、修复
如果想打进去,必须配置includeSystemScope标签。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
2.4、解决
再次打包,发现第三方jar已经打到了最终的jar中。
3、总结
本文介绍了如何解决systemPath引入本地jar无法打到最终jar中的问题,至于使用mvn install安装到本地,当然也是可以的,这里就不介绍了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。