一、构建项目的几个环节
- 清理(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仓库。
摘自:https://blog.csdn.net/cockroach02/article/details/109523105