maven引入外部本地jar包,打包时无法打入的问题,解决scope为system的jar包无法被打包进jar文件的解决方案。
文章目录
一、解决思路
项目中由于需求的需要,可能需要引入maven仓库以外的jar包,但是maven仓库中没有,就需要通过maven引入本地jar,引入方式如下。
resources中放入本地jar,通过maven的scope为system的方式引入本地jar
maven项目中引入本地jar包代码如下(示例):
<dependency>
<groupId>org.crazy</groupId>
<artifactId>crazy-core</artifactId>
<version>${crazy.core.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/libs/crazy-core-1.0.0-SNAPSHOT.jar</systemPath>
</dependency>
当按照这种方式引入时,发现jar正常引入到了项目中,开发时使用正常,没有任何的问题,但是当功能开发完成后正常的maven打包,更新到服务器端启动jar包时发现,报错找不到这个jar。
原因是scope为system的maven打包默认是不打进jar包进去的
解决方案:
在maven的pom配置文件中spring-boot-maven-plugin中增加如下配置解决问题;
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--解决本地jar包打不进jar的问题-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
当你配置上之后重新打包,运行,发现问题就解决了