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/war:
package
生命周期 - 安装到本地仓库(
~/.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-api
和common
- 所有模块依赖由父级
pom.xml
管理版本与依赖顺序 install
会自动将构建好的模块临时放入本地仓库,供后续模块使用,无需手动打包依赖
✅ 小贴士
- 模块过多时,可用
-T 4
开启并行构建:mvn -T 4 clean install -DskipTests
- 如果只想打包
web
模块:mvn clean install -pl web -am -DskipTests
- 建议始终从根模块执行构建,避免漏包或依赖缺失
IDEA界面打包
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~
