Fork me on GitHub

Spring Boot多模块项目打包

Spring Boot多模块项目打包流程

基于 JDK 1.8 + Spring Boot 2.x 的 Maven 多模块项目。

📁 模块结构

spring-multi-demo
├── pom.xml             # 父工程
├── common              # 公共模块
├── service-api         # 服务接口定义
├── service-impl        # 服务实现(依赖 api + common)
└── web                 # 启动模块(依赖 impl)

🚀 打包命令

mvn clean install -DskipTests

解释如下:

1️⃣ clean

清理项目:

  • 删除所有模块下的 target/ 目录
  • 清空上一次构建的中间产物,确保构建干净
  • 本质等同于执行 rm -rf */target,但更智能

2️⃣ install

编译 + 打包 + 安装:

  • 编译源代码compile 生命周期
  • 打包 jar/warpackage 生命周期
  • 安装到本地仓库~/.m2/repository):供其他模块使用,install 生命周期
  • 多模块构建时,Maven 会自动按依赖顺序构建每个子模块

3️⃣ -DskipTests

跳过测试阶段:

  • 不执行 src/test/java 下的单元测试
  • 不编译测试类,也不运行它们
  • 常用于快速构建部署产物
  • ⚠️ 注意不是 -Dmaven.test.skip=true,后者会跳过测试编译和执行,略有不同

🎯 打包结果

执行完后,目标产物生成路径如下:

web/target/web-1.0.0.jar

这是最终的可执行主模块。运行方式:

java -jar web/target/web-1.0.0.jar

默认监听在 8080 端口,可通过 application.yml 修改。


🔄 多模块依赖说明

  • web 依赖 service-impl
  • service-impl 依赖 service-apicommon
  • 所有模块依赖由父级 pom.xml 管理版本与依赖顺序
  • install 会自动将构建好的模块临时放入本地仓库,供后续模块使用,无需手动打包依赖

✅ 小贴士

  • 模块过多时,可用 -T 4 开启并行构建:mvn -T 4 clean install -DskipTests
  • 如果只想打包 web 模块:mvn clean install -pl web -am -DskipTests
  • 建议始终从根模块执行构建,避免漏包或依赖缺失

IDEA界面打包

image

posted @ 2025-04-29 21:26  秋夜雨巷  阅读(300)  评论(0)    收藏  举报