mvn clean install和mvn clean package有啥区别
时间: 2025-06-16 20:45:44 浏览: 24
### Maven命令`mvn clean install`与`mvn clean package`的区别
#### 命令概述
Maven 是一种强大的项目管理工具,支持构建、依赖管理和文档生成等功能。其中 `mvn clean install` 和 `mvn clean package` 都是常用的构建命令。
- **`mvn clean package`**: 这一命令会清理目标目录 (`clean`) 并执行打包操作 (`package`),最终生成可部署的构件(如 JAR 或 WAR 文件)。此过程不会将生成的构件安装到本地仓库中[^3]。
- **`mvn clean install`**: 此命令除了完成 `mvn clean package` 的所有功能外,还会额外将生成的构件安装到本地 Maven 仓库中,使得其他项目可以引用该构件作为依赖项[^3]。
#### 主要区别
1. **构建产物的位置**
- 使用 `mvn clean package` 后,生成的文件仅存在于项目的 `target` 目录下,供当前项目使用。
- 而通过 `mvn clean install` 构建后,不仅会在 `target` 目录生成文件,还会将其复制并存储至本地 Maven 仓库(默认路径为 `~/.m2/repository/`),以便被其他项目识别和引用[^3]。
2. **适用场景**
- 如果只需要测试或运行当前项目,则可以选择 `mvn clean package` 来减少不必要的资源消耗[^1]。
- 当希望让其他项目能够访问本项目的输出成果时,应采用 `mvn clean install`[^1]。
3. **生命周期阶段**
- `mvn clean package` 包含了从清理旧数据(`clean`) 到创建软件包(`package`) 的一系列步骤,具体包括但不限于 resources, compile, testResources, testCompile, test, jar (or war)[^3].
- 对于 `mvn clean install`, 它包含了前述所有的阶段再加上最后一步即将产生的工件存入本地库(install),即它涵盖了更多的处理流程[^3].
4. **性能考量**
- 因为不需要把结果放入中央储存区,在某些情况下单纯做 packge 可能更快一点;但是如果不小心遗漏了必要的更新动作可能会导致不一致的结果出现[^1].
综上所述,虽然两者都涉及到了清除工作空间以及编译源码的过程,但在是否上传制品方面存在显著差异。
```bash
# 示例:执行 mvn clean package
mvn clean package
# 示例:执行 mvn clean install
mvn clean install
```
阅读全文
相关推荐




















