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號