mvn clean install 和 mvn package 的区别
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 仓库。
浙公网安备 33010602011771号