作者:微信小助手
发布时间:2023-07-28T15:33:53
点击上方蓝字关注我们
01
前言
最近和朋友闲聊,他说他遇到一个问题,他引用了第三方公司私有API包,他在本地项目启动没问题,打包运行却找不到这个API包,于是我就问他怎么引用这个jar。
他工程项目第三jar存放的位置类似如下
在pom做如下引用
<dependency>
<groupId>org.example</groupId>
<artifactId>demo-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/demo-api.jar</systemPath>
</dependency>
pom打包插件用springboot自带的插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
看到这个插件,大概就知道问题所在了,springboot默认的打包插件是不会把systemscope的jar打进springboot项目的BOOT-INF/lib/。
注: springboot项目默认会引用BOOT-INF/lib/里面的jar
于是我就跟朋友说,不要用systemscope了,直接搭建maven私仓,然后把第三方jar上传到私仓中,pom做如下引用
<dependency>
<groupId>org.example</groupId>
<artifactId>demo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
朋友给回复是公司没有私仓,我一脸懵逼,我就问他应该不至于吧,再次确认,得到他同样的回复后。后边就提供了下边的几种方案,让他参考选择