spring-boot-maven-plugin:repackage 的设计初衷是将普通 JAR 重打包为可执行的 fat-jar(内嵌依赖、修改 MANIFEST)。它要求项目必须是一个合法的 Spring Boot 应用(通常需继承 spring-boot-starter-parent 或显式管理 Spring Boot BOM)。当该插件作用于非 Spring Boot 项目时:
# 1. 清理并重新构建上游模块(确保生成有效 JAR)
cd abis-migrations-conversion
mvn clean install
# 2. 构建下游模块(此时能正确解析依赖)
cd ../runtime-migrations-conversion
mvn clean install
⚠️ 注意事项:
验证本地仓库内容:构建后检查 ~/.m2/repository/com/hcb/migration/bioenrol/abis-migrations-conversion/1.0-SNAPSHOT/,确认 abis-migrations-conversion-1.0-SNAPSHOT.jar 文件存在且大小合理(非 0KB),并可通过 jar -tf 查看内部 class 结构。
IDE 同步:IntelliJ 等 IDE 需执行 Reload project(Maven 工具窗口 → 刷新按钮)以更新依赖索引,避免缓存误导。
模块依赖范围:本例中 compile 是默认值,可省略;若仅测试时需要,才应设为 test。
Spring Boot 模块的正确用法:若某模块确实是 Spring Boot 应用,则应统一使用 spring-boot-starter-parent,并在 pom.xml 中声明 jar(默认)及 spring-boot-maven-plugin —— 但必须确保其 mainClass 确实存在且为 @SpringBootApplication 类。