当项目中引入了本地的第三方jar包,如下:
<dependency>
<groupId>com.demo</groupId>
<artifactId>demo-common-jwt</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/../lib/demo-common-jwt-1.0-SNAPSHOT.jar</systemPath>
</dependency>
接着执行maven的打包命令后,打好的jar包中是不包含这些第三方jar包的
Maven打包引用的本地jar包的解决方案:
解决方案一(手动添加,不推荐):
- 找到文件管理器中的jar包
- 右键选择用WinRAR打开(若没有安装WinRAR的需要先安装)
- 进入到BOOT-INF/lib目录下:
- 点击添加左上角的添加按钮:
- 选择好要添加的jar包,点击确定
- 选择【文件】一栏
- 将要添加的文件中的内容全部剪切到不压缩直接存储的文件中,进行覆盖:
- 点击确定后,jar包就被手动添加到了lib目录下,可以自行查看
解决方案二(自动添加,推荐):
在maven使用的spring-boot-maven-plugin插件中添加如下配置:
<includeSystemScope>true</includeSystemScope>
表示将通过systemPath引入的jar包也纳入到lib目录
完整插件配置类似:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<!--把上面导入的第三方包指定的systemPath所指向的jar包也纳入lib-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>