一、依赖环境

  1. SSH,远程机开启SSH服务,允许Jenkins所在机器通过SSH服务登录到远程机执行脚本;可以设置SSH使用用户名/密码或通过key登录,SSH配置请查看我之前的jenkins配置文章。
  2. JDK,本文部署的是JAVA应用,远程机上要用jdk环境,如非Java应用请忽略。
  3. Tomcat或其他web容器,本文是以Tomcat为例,将应用部署到Tomcat中运行,远程机上安装Tomcat是必须的,如非Java应用请忽略,如用其他web容器请查找容器的安装资料。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

二、前期准备

1、安装 Publish Over SSH 插件

由于后面我们还需要把打好的包分发到远程的服务器.所以这里还要再安装一个Publish Over SSH插件.这样的话,我们就可以在jenkins配置中直接使用远程拷贝了,把包直接拷贝到远程服务器。我这里是已经安装过了。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

2、配置 Publish over SSH

我们添加一台服务器,后面打好的包将推送到这台服务器的 tomcat 上面。

  • 系统管理--->系统设置--->Publish over SSH。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

  • 添加对应服务器的账号信息。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

SSH Servers:远程服务器相关配置,也就是我们要把程序发布到的那一台机器的相关配置。
Name:起一个名字,方便后面配置发布的时候,选择服务器。
Hostname:远程服务器的IP地址,如果写远程的主机名的话,要在jenkins的hosts文件中加映射。
Username:服务器账号用户名。
Remote Directory:要把文件发布到远程机器的哪一个目录。

  • 我们针对单一的服务器进行配置,只需要填写好特定服务器的账号密码即可,我们也可以配置统一的无密码通信,即使用公钥通信。

  • 测试成功,点击保存即可,我们在后面构建项目的时候可以直接选择被构建的服务器。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

3、安装 git 插件

因为我们的 jenkins 需要从 gitlab 获取代码,需要安装 git 插件。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

二、创建 java 任务

1、创建一个 maven 任务

  • 任务名字可以随便填写。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

2、General

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

描述:我们可以随便填写,大概介绍一下项目的情况,以及发送到哪个机器。
丢弃旧的构建:为了不对服务器存储造成太大的压力,我们需要清理之前构建的一些项目,这里大家可以按照自己的情况进行设定。

3、源码管理

这里我使用的是自己的 gitlab 代码仓库,没有设定权限,在 github 上面的地址为:https://github.com/wangzan18/game-of-life

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

Repository URL:填写我们git项目的地址,gitlab上面的每个项目都有相应的地址。
Credentials:我这里演示的是公开的项目,如果是私有项目,需要添加认证,我会在其他的博文进行讲解演示。
Branches Specifer:因为我的项目直接在master分支上面进行更新的,所以这里填写了*/master,如果使用的其他分支可以相应的修改即可。

4、构建触发器

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

构建触发器我这里没有用到,意思就是说,当触发了什么条件等时候,我们后面会和 gitlab 进行自动发布。

5、构建环境

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

哈哈,这里我没有用到哦。

6、Pre Steps

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

也就这几个选项,也就是构建前需要做什么。反正我是没有用到。

7、Build

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

配置相对比较简单,按照如上填写即可。

8、Post Steps

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

暂时不写什么,还没有用得到。

9、构建设置

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

可以填写邮件通知,告诉我构建的结果。

10、构建后操作

这里是比较重要的一块,这里我们选择的是:Send build artifacts over SSH。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

SSH Server Name:这里选择之前我们配置好的服务器,并且已经测试了SSH连接,服务器也已经安装了Tomcat。
Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔),为了简要也可以写**/*.war
Remove prefix:移除前缀(只能指定Source files中的目录)。
Remote directory:远程目录(这里也是相对目录,目录根据我们配ssh的时候填写的Remote Directory 路径,我写的是/root,后面会上图,在这个路径的基础上的相对路径。
持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)
Exec command:把你要执行的命令写在里面,也就是我们平时手动操作的一些过程。

一切配置的差不多之后,我们保存,进行构建测试。

三、构建测试

1、开始构建

我们回到任务栏,点击任务最后面的构建按钮。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

2、查看构建

  • 我们点击我们构建的 #2 号任务。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

我们点击控制台输出,查看一下构建的过程,一些失败的过程我们也可以从中去进行查看。

持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)

3、构建成功

我们可以看到BUILD SUCCESS,说明我们编译打包没有了什么问题。
再可以看到下面的一些命令的执行,也都是成功的,经过我们测试,项目也确实发布了,没有什么问题,至此大功告成,已经我们的更改,都只需点击一下按钮就可以发布测试了,为我们节省了很多时间。
本版本只是简要介绍了一下项目的发布,中间可能也会有很多设定不合理的地方,后期会不断的进行更新。

参考文档:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin