下游job获得上游构建的war包

小白的傻瓜教程,有错请指出~~转载请注明出处,谢谢~~~

 

以前使用Jenkins进行持续集成是把构建和部署放在同一个job了,但原则上是每个job只做一个步骤,所以我在使用Jenkins的pipeline功能后,就分成了构建和部署两个job。

以前直接在同一个job的工作目录下就可以获得war部署到服务器上,现在遇到的问题是怎样从上游的工作目录里获得构建产物。

于是我用到了copy artifact plugin这个插件。

 

一、安装插件

进入jenkins的【系统管理】--【插件管理】页面,选择【可选插件】然后搜索copy artifact plugin

二、上游job关联下游job  选择【增加构建后操作步骤】的build otherproject

填写下游job的名称

三、下游job获取上游构建产物

【增加构建步骤】选择 copyartifacts from another project

 

project name:指定从哪个job中拷贝文件。

which build:选择从哪一次构建获得产物。

Artifacts to copy:指定要拷贝的产物,如果是在workspace文件夹下,直接填文件名,如果是在某个目录下,要填目录+文件名。可填多个文件,用“,”隔开。

         eg:我要获得workspace下a目录下target目录下的a.war,这里就填a/target/a.war.

Target directory:(可不填,不填的话文件目录就按照Artifacts to copy建立)指定将产物拷贝到该job的workspace下哪个地方,可以加在文件名前加上目录可以是多层目录,且将文件名换成别的,比如:www\b.war.

                       这个job会按照这里设定的格式自动创建目录,每次构建都会将原来得到的war包替换成本次从上游得到的war包。

四、部署至其他服务

 使用了插件send build artifacts over  ssh

      首先在系统设置里将服务器信息设置好。

      source files:源文件,在本次job的workspace目录下的文件。从workspace这个目录下的目录开始。eg:a/target/a.war

      remove prefix:删除前缀。填了a/target 后复制到本服务器上的就只有a.war

      Remote directory:放置那个文件夹下。

 

 

 

 

posted @ 2016-11-21 13:38  我有一只小傲娇  阅读(193)  评论(0编辑  收藏  举报