Maven打包 package install deploy区别

一、maven的 Lifecycle(生命周期)

  • 清理(clean):删除以前的编译结果,为重新编译做好准备
  • 编译(compile):将Java 源程序编译为字节码文件
  • 测试(test):针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性
  • 打包(package):将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war包
  • 安装(install):在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中
  • 部署(deploy):将打包的结果部署到远程仓库或将 war 包部署到服务器上运行

二、打包区别

  • mvn package:打包到本项目,一般在项目target目录下。
  • mvn install:打包到本地仓库,如果没有设置Maven本地仓库,一般在用户/.m2目录下。
  • mvn deploy:打包上传到远程仓库,如:私服nexus等,需要配置pom文件

三、打包过程

  • mvn clean package
    依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)。
  • mvn clean install
    依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install。
  • mvn clean deploy
    依次执行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy。

由上面分析主要区别如下:

  • package命令:完成项目编译、单元测试、打包功能,但打包文件未部署到本地Maven仓库和远程Maven仓库。
  • install命令:完成项目编译、单元测试、打包功能,同时把打包文件部署到本地Maven仓库,但未部署到远程Maven仓库。
  • deploy命令:完成项目编译、单元测试、打包功能,同时把打包文件部署到本地Maven仓库和远程Maven仓库。
本地存放 本地仓库存放 远程仓库存放
package × ×
install ×
deploy

你可能感兴趣的:(Maven,maven,java,开发语言)