IDEA maven项目添加本地jar包
背景
springboot项目,SDK方式集成第三方系统,需要引入第三方jar包步骤
1.resource文件夹下新建文件夹lib,将目标jar包放入
2.pom.xml文件添加配置
<dependency> <groupId>org.example.pova-service</groupId> <artifactId>xxxx</artifactId> <version>0.0.1</version> <scope>system</scope> <systemPath>${pom.basedir}/src/main/resources/libv11/xxx.jar</systemPath> </dependency>3.以上两步完成,项目本地可以跑起来,部署服务器会报错:ClassNotFoundException(类找不到)
原因: ‘scope’ 标签值system不回加入到maven依赖,本地包不会添加到最终的war包,需要添加配置
<build> <plugins> <!-- 1. 核心:Maven WAR 插件(兼容 3.3.2, 强制打包) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <!-- 强制复制本地 Jar 到 WEB-INF/lib --> <webResources> <resource> <!-- 本地 Jar 的存放目录(和你 systemPath 一致) --> <directory>${pom.basedir}/src/main/resources/libv11</directory> <!-- 目标目录:打包后放入 WAR 的 WEB-INF/lib --> <targetPath>WEB-INF/lib</targetPath> <!-- 包含该目录下所有 Jar --> <includes> <include>*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </build>总结
优点
快速引入本地包 方便maven管理缺点:
破坏 Maven 依赖管理:无法自动下载、版本无法统一管理 团队协作麻烦:本地jar 放到指定路径,否则项目报错 SpringBoot 打war包默认不包含:直接打包后,运行会报 ClassNotFoundException(类找不到),需要单独增加配置 可移植性差:项目移动路径后,依赖失效