理解 install
和 package
的区别对实际开发非常重要,尤其在多模块项目中。
✅ 一句话总结:
命令 | 作用 | 生成位置 | 作用范围 |
---|---|---|---|
package | 打包项目(生成 jar/war) | target/ 目录下 | 仅本项目可用 |
install | 打包 + 安装到本地仓库 | ~/.m2/repository/ | 本机所有 Maven 项目可用 |
✅ 详细区别解析:
1️⃣ mvn package
- 功能:将项目编译、测试、打包成
.jar
或.war
- 打包后的文件放在:
target/your-app.jar
- 仅当前项目可见,如果其他项目想用这个 jar,找不到!
✅ 适用场景:
- 本地测试
- 快速构建 jar 包看效果
2️⃣ mvn install
- 功能:执行 package 的所有操作,并 将 jar/war 安装到本地仓库(
~/.m2/repository
) - 安装后,其他 Maven 项目就能通过:
直接依赖使用<dependency> <groupId>com.example</groupId> <artifactId>your-app</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
✅ 适用场景:
- 多模块项目
- 公共模块(utils、common)被其他模块调用
- 本地调试跨项目引用
✅ 总结面试高分回答:
mvn package 只会把项目打包生成 jar/war,存在 target 目录下,其他项目无法直接依赖。
mvn install 会将打包好的文件安装到本地 Maven 仓库(~/.m2/repository),方便其他 Maven 项目引用依赖。
install 是 package 的超集,开发中如果涉及模块间依赖,必须用 install。