mvn clean install 和 mvn package 的区别

mvn clean installmvn 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 是一个组合命令,包含 cleaninstall 两个阶段。

执行流程

  • clean:删除之前构建生成的文件,包括 target/ 目录中的所有文件。确保一个干净的构建环境。
  • 编译代码:编译 src/main/java 下的源代码。
  • 运行测试:运行所有单元测试。
  • 打包:将编译后的代码打包成 JAR、WAR 等格式。
  • install:将打包好的文件安装到本地 Maven 仓库(通常位于 ~/.m2/repository 目录下),供其他 Maven 项目引用。

简要总结

  • mvn clean install 会清理上次构建的产物,重新编译、测试、打包,并将包安装到本地仓库,以供其他项目使用。

区别:

  1. 清理步骤mvn clean install 会先执行 clean 操作,删除 target 目录,确保一个干净的构建环境;而 mvn package 不会执行清理。
  2. 安装到本地仓库mvn package 只是将构建好的文件存储在 target/ 目录下,不会安装到本地 Maven 仓库。而 mvn install 会将打包后的文件安装到本地 Maven 仓库,供其他项目依赖。

总结:

  • mvn package:仅编译、测试、打包,但不清理,也不安装到本地仓库。
  • mvn clean install:先清理旧的构建文件,然后编译、测试、打包,并安装到本地 Maven 仓库。
posted on 2024-09-13 10:02  九七年的菠萝啤  阅读(2997)  评论(0)    收藏  举报