Spring Boot多模块项目引入外部JAR解决方案
解决使用
system 时JAR未被打包的问题
问题背景
在Spring Boot多模块项目中,使用
这会导致运行时出现ClassNotFoundException或NoClassDefFoundError等错误。
方案1
配置Spring Boot Maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 关键配置: 包含system作用域的依赖 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
实施步骤
在父模块或启动模块的pom.xml中添加配置
重新执行mvn package
方案2
手动复制JAR到构建目录
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-lib</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/BOOT-INF/lib/</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/lib</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
实施步骤
将JAR文件放入src/main/resources/lib目录
在引入依赖的模块中添加配置
重新打包
方案3
将JAR安装到本地仓库
- 安装到Maven本地仓库
mvn install:install-file \
-Dfile=src/main/resources/lib/reader.jar \
-DgroupId=com.ruoyi \
-DartifactId=ruoyi-lib \
-Dversion=1.0.0 \ # 指定实际版本号
-Dpackaging=jar
- 修改依赖配置
<groupId>com.xxx</groupId>
<artifactId>xxx-lib</artifactId>
<version>1.0.0</version>
<!-- 移除scope和systemPath -->
</dependency>
实施步骤
执行Maven安装命令
修改依赖配置
重新打包

偶做前堂客
祝你天天开心
在未知的时间
在未知的地点

浙公网安备 33010602011771号