Jenkins实现一键部署maven项目

git插件安装

进入菜单"jenkins>系统管理>管理插件>可选插件",在右侧搜索栏输入"Git Plugin",也能够搜索安装"GitHub plugin"或"SVN Publisher plugin"java

但事实上我下载安装时一直报错nginx

java.io.IOException: Could not find JSON in http://updates.jenkins-ci.org/update-center.json?id=default&version=2.16

折腾好久未能解决,最后自已到http://mirror.xmission.com/je...下载须要的插件。参考jenkins wiki:https://wiki.jenkins-ci.org/d...git

下载到hpi文件到jenkins主目录下的plugins,同时要下载依赖插件,例如git plugin依赖bouncycastle-api和git client(在控制台安装失败时,能够看到要安装的依赖插件),才能安装成功。web

$ cd /var/lib/jenkins/plugins
$ wget http://mirror.xmission.com/jenkins/plugins/git/latest/git.hpi

而后重启jenkins,登陆jenkins,进入“jenkins>系统管理>管理插件>已安装”,能够看到Git plugin已成功安装。再从新进test-build-job配置,源码管理已经出来git。最后回到plugins目录把.hpi文件删除。apache

接下来将jenkins master的公钥添加到git服务器上,公钥在/var/lib/jenkins/.ssh/id_rsa.pub,生成公钥可参考Jenkins slave节点机器配置json

图片描述

建立链接git的credentials,建立请参考Jenkins控制台slave配置segmentfault

maven安装配置

接下来安装mavenapi

$ cd /usr/local
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

解压tomcat

$ tar -zvxf apache-maven-3.3.9-bin.tar.gz

进入菜单“jenkins>新建”服务器

图片描述

配置jdk和maven settings.xml路径

图片描述

建立一个在java master上用maven打包项目的job

进入菜单“jenkins>新建>构建一个自由风格的软件项目”

图片描述

进入配置,根据状况配置历史构建保存的天数和个数,指定jdk以及执行该job的机器,这里指定了master

图片描述

git配置,填写git项目地址和上一节提到的credentials,我要部置的项目分支是master

图片描述

maven配置,以及maven构建完成后,执行脚本将war包放到目录/var/lib/jenkins/userContent,插件Copy To Slave Plugin会从该目录下载war包到slave

脚本还包含一个备份功能,将userContent下的war包名称添加日期后缀进行重命名,同时检查war包个数,超过10个时删除最旧的那个

图片描述

最后在构建完成后,配置要触发的另外一个job,这个job用来下载master机器的war包到和个slave节点,并执行tomcat重启。同时指定构建失败后要发送邮件的邮箱,以空格隔开

图片描述

第一个job完成

建立下载war包到slave节点并完成tomcat重启的job

进入菜单“jenkins>新建”,选择构建一个多配置项目

图片描述

进入配置,general和上一个job相似

图片描述

配置须要部署的slave节点

图片描述

指定下载war包的目录,这块须要先安装插件copy-to-slave

图片描述

下载完成后,执行发布脚本。先从工做空间取出war包到tomcat的war存放目录,我这里配置的是/www/web,同时作一个备份。而后先关闭tomcat,保证杀死tomcat进程,而后删除tomcat root目录,再启动tomcat

图片描述

最后一样能够配置job执行失败的邮件通知

邮件通知配置

须要先安装插件Email Extension Plugin,进入菜单“jenkins>系统管理>系统设置>邮件通知>高级”,设置用于发送邮件的邮箱和密码

图片描述

整过部置过程结束

注意点

  1. 部署过程涉及到的文件和程序都应该为jenkins用户所拥有或者有相关权限,否则会报权限错误;

  2. slave 80端口只能由root占用,因此这里tomcat用8080启动,而后在root安装nginx,将请求转发到8080,后续有时间再写写相关实践。

相关文章
相关标签/搜索