资讯专栏INFORMATION COLUMN

Jenkins实现一键部署maven项目

wqj97 / 1855人阅读

摘要:最后回到目录把文件删除。先从工作空间取出包到的存放目录,我这里配置的是,同时做一个备份。

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

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

下载到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,生成公钥可参考Jenkins slave节点机器配置

创建连接git的credentials,创建请参考Jenkins控制台slave配置

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>系统管理>系统设置>邮件通知>高级”,设置用于发送邮件的邮箱和密码

整过部置过程结束

注意点

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76395.html

相关文章

  • 解放双手 | Jenkins + gitlab + maven 自动打包部署项目

    摘要:什么是可以简单地理解为可以代替你实现自动从拉取代码,打包,部署到远程服务器的工具。随后登录后发现页面空白,没找到具体原因,重启下容器后再登录就好了。主要是配置访问服务器拉取代码,还有配置远程服务器地址,目的是为了打包后上传文件到远程服务器。 showImg(https://segmentfault.com/img/remote/1460000017907307?w=495&h=300)...

    JouyPub 评论0 收藏0
  • 从0开始搭建自动部署环境(续)

    摘要:从开始搭建自动部署环境续前言上一篇从开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。创建本地仓库参考新建项目项目是我写的一个用来测试环境的项目,代码托管在上。 从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spr...

    lily_wang 评论0 收藏0
  • 从0开始搭建自动部署环境(续)

    摘要:从开始搭建自动部署环境续前言上一篇从开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。创建本地仓库参考新建项目项目是我写的一个用来测试环境的项目,代码托管在上。 从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spr...

    shuibo 评论0 收藏0

发表评论

0条评论

wqj97

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<