mvn clean install
和 mvn package
是 Maven 构建工具中的两个常用命令,它们在执行时的作用和流程有所不同。
1. mvn package
mvn package
是 Maven 的一个构建命令,作用是编译代码并打包为一个可分发的格式,如 JAR、WAR 等。
执行流程:
- 编译代码:编译
src/main/java
下的源代码。 - 运行测试:运行所有单元测试,确保代码质量。
- 打包:将编译后的代码和资源文件打包成指定的格式(如 JAR 或 WAR),打包后的文件会保存在
target/
目录下。
简要总结:
mvn package
只会编译、测试并生成打包文件,不会把包安装到本地 Maven 仓库中。
2. mvn clean install
mvn clean install
是一个组合命令,包含 clean
和 install
两个阶段。
执行流程:
- clean:删除之前构建生成的文件,包括
target/
目录中的所有文件。确保一个干净的构建环境。 - 编译代码:编译
src/main/java
下的源代码。 - 运行测试:运行所有单元测试。
- 打包:将编译后的代码打包成 JAR、WAR 等格式。
- install:将打包好的文件安装到本地 Maven 仓库(通常位于
~/.m2/repository
目录下),供其他 Maven 项目引用。
简要总结:
mvn clean install
会清理上次构建的产物,重新编译、测试、打包,并将包安装到本地仓库,以供其他项目使用。
区别:
- 清理步骤:
mvn clean install
会先执行clean
操作,删除target
目录,确保一个干净的构建环境;而mvn package
不会执行清理。 - 安装到本地仓库:
mvn package
只是将构建好的文件存储在target/
目录下,不会安装到本地 Maven 仓库。而mvn install
会将打包后的文件安装到本地 Maven 仓库,供其他项目依赖。
总结:
mvn package
:仅编译、测试、打包,但不清理,也不安装到本地仓库。mvn clean install
:先清理旧的构建文件,然后编译、测试、打包,并安装到本地 Maven 仓库。