理解 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。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐