博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jenkins实现一键部署maven项目
阅读量:6180 次
发布时间:2019-06-21

本文共 1879 字,大约阅读时间需要 6 分钟。

git插件安装

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

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

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

折腾很久未能解决,最后自已到下载需要的插件。参考jenkins wiki:。

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

$ 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文件删除。

接下来将jenkins master的公钥添加到git服务器上,公钥在/var/lib/jenkins/.ssh/id_rsa.pub,生成公钥可参考

图片描述

创建连接git的credentials,创建请参考

maven安装配置

接下来安装maven

$ 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

解压

$ 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,后续有时间再写写相关实践。

转载地址:http://mjdda.baihongyu.com/

你可能感兴趣的文章
全栈 - 15 实战 Diamonds 数据集探索
查看>>
即学即用系列一:纯函数
查看>>
虚拟IP管理系统设计
查看>>
[翻译练习] Node interview of ElemeFE OS
查看>>
Git原理与高级使用(1)
查看>>
【PWA学习与实践】(9)生产环境中PWA实践的问题与解决方案
查看>>
一文了解安卓APP逆向分析与保护机制
查看>>
翻译连载 | JavaScript 轻量级函数式编程-第3章:管理函数的输入 |《你不知道的JS》姊妹篇 ...
查看>>
(二)希尔排序法
查看>>
电商设计手册之基础商品信息
查看>>
RecyclerView的复用机制
查看>>
机器学习之牛顿法
查看>>
在Ubuntu上使用MySQL设置远程数据库优化站点性能
查看>>
鹅厂优文|主播pk,如何实现无缝切换?
查看>>
编写基于PHP扩展库的后门
查看>>
TIOBE 6 月编程语言排行榜:Java 放缓,C 复兴了!
查看>>
Android Handler机制之Message及Message回收机制
查看>>
JSON vs Js
查看>>
css居中
查看>>
谈谈分享邀请奖励机制(附iOS实现代码)
查看>>