maven命令package、install、deploy之间的区别
在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可以完成打jar包或war包的功能,但这三个命令还是有区别的。接下来分别执行这三个命令来分析所执行的maven生命周期
1、maven clean package
2、maven clean install
3、maven clean deploy
通过上述三个命令的输出结果,我们可以看出三者的区别在于包含的maven生命的阶段和执行目标不同。maven生命周期(lifecycle)由各个阶段组成,每个阶段由maven的插件(plugin)来执行完成。生命周期主要包括:clean、resources、compile、install、package、testResources、deploy等,其中test开头的都是用于编译测试代码或运行单元测试用例的。
仔细查看上面的输出结果,可发现:
- maven clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar共7个阶段
- maven clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar和install共8个阶段
- maven clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar、install和deploy共9个阶段
三者主要区别如下
- package命令完成了项目编译、单元测试、打包功能,但没有将编译好的可执行jar包部署到本地maven仓库和远程maven私服仓库
- install命令完成了项目编译、单元测试、打包功能,同时将编译好的可执行jar包部署到本地maven仓库,没有部署到远程maven私服仓库
- deploy命令完成了项目编译、单元测试、打包功能,同时将编译好的可执行jar包部署到了本地maven仓库和远程maven私服仓库