当我们部署maven项目时,有些项目需要依赖其他项目才能打包成功
image.png
因此我们需要在部署项目时,可以先构建依赖项目,也可以一个项目(触发构建依赖)

触发构建依赖 Jenkins 配置:
image.png
上面的文本参数中的CommonBranch指的是依赖项目的分支名,可以更改,下面作为参数传递给依赖项目。
image.png
Pre steps 中配置项目构建前执行的动作,构建日志表现如下
image.png
maven项目构建时,涉及到下面两个路径[不同配置路径不同]

  1. maven本机仓库目录:/root/.m2/repository/com/
  2. Jenkins工作目录:/var/lib/jenkins/workspace/

package

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
package只有打包项目的功能

install

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
install具有打包和安装打包后的包到本地仓库的功能,一般作为其他项目的依赖,安装在本地仓库上。

deploy

mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
deploy 具有package和install的功能,还有推送打包后的包到远程仓库的功能。一般作为其他项目的依赖,安装在远程仓库上。

区别

package、install、deploy 三个命令的区别在于包函的maven生命的阶段和执行目标(goal)不同。
maven生命周期(lifecycle)由各个阶段组成,每个阶段由maven的插件plugin来执行完成。生命周期(lifecycle)主要包括clean、resources、complie、install、pacakge、testResources、testCompile、deploy等,其中带test开头的都是用业编译测试代码或运行单元测试用例的。

由上面的分析可知主要区别如下,

  • package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。
  • install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
  • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。