Maven引入本地jar包

问题

maven引入本地jar包,打包时target无法打入的问题,解决scope为system的jar包无法被打包进jar文件的解决方案。

解决思路

项目中由于需求的需要,可能需要引入maven仓库以外的jar包,但是maven仓库中没有,就需要通过maven引入本地jar,引入方式如下。

resources中放入本地jar,通过maven的scope为system的方式引入本地jar

maven项目中引入本地jar包代码如下:

1
2
3
4
5
6
7
8
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>2.3.1</version>
<scope>system</scope>
<!--添加jar包路径-->
<systemPath>${project.basedir}/lib/spring-boot-admin-server-ui-2.3.0-SNAPSHOT.jar</systemPath>
</dependency>

当按照这种方式引入时,发现jar正常引入到了项目中,开发时使用正常,没有任何的问题,但是当功能开发完成后正常的maven打包,更新到服务器端启动jar包时发现,报错找不到这个jar。

原因是scope为system的maven打包默认是不打进jar包进去的。

解决方案: 在maven的pom配置文件中spring-boot-maven-plugin中增加如下配置解决问题。

1
2
3
4
5
6
7
8
9
10
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--解决本地jar包打不进jar的问题-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>

当你配置上之后重新打包,运行,发现问题就解决了。