jenkins maven Spring Boot git Linux(转)
最近工作需要使用jenkins来持续部署Spring Boot项目,在网上爬了很多教程,这方面的教程也不是很多,也掉了很多坑。jenkins要安装起来虽然不难,但也不算太容易。因此萌发了写这篇教程的想法,共享给大家一起进步。
下面我们开始教程
Jenkins简介
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作。简单点来讲就是配置好Jenkins以后可以一键发布项目,包括从git master分支拉取最新的代码,然后打包,然后上传到远程Linux服务器发布等一系列步骤它都可以帮你一键完成。这无疑可以省去很多程序员重复性繁琐的操作。特别是对于现在的spring cloud微服务来说,一个项目由多个小项目组成,每个小项目都独立部署,使用jenkins是最好的部署和管理工具了。
本教程分为两部分,第一部分是安装教程,第二部分是使用教程。
第一部分:安装教程
环境和所需软件:centos6.5、tomcat8
前提:请确保你的jdk和maven环境已经安装配置妥当。
一、下载jenkins.war包,war包可以去官网下载,随后我会附上下载链接,可以避免因为版本带来的各种脑残错误。
二、将jenkins.war包放到tomcat webapp的目录下,启动tomcat
三、浏览器访问jenkins。http://192.168.0.101:90/jenkins 。这里我用的是局域网里的Linux,请注意替换成自己的IP,端口号默认是8080,如果没有修改过tomcat则不用更改,我这里是更改过后的端口号。
四、在jenkins中配置jdk和maven
![](http://upload-images.jianshu.io/upload_images/2962650-da3b73ebdc63187a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
五、安装git plugin插件(用于从git拉取最新的代码)和publish over ssh插件(用于上传打包好的项目到远程Linux)。进入系统管理--管理插件--可选插件,在搜索框里面输入git plugin 和publish over ssh,然后点击安装即可。安装好以后可以在“已安装”选项里面看看是否安装成功。
![](http://upload-images.jianshu.io/upload_images/2962650-d6b475aed7d6c0cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
六、重启tomcat来重启jenkins,让上面两个插件生效。到此jenkins安装完毕,下面开始第二部分--使用教程。
第二部分:使用教程
其实使用教程也可以分为两步,第一步:jenkins从git master分支抓取最新代码自动构建打包;第二步:将打包好的jar包上传到Linux远程端,关闭正在运行的项目,然后运行新的jar项目。
第一步:
一、打开jenkins首页,点击新建项目
![](http://upload-images.jianshu.io/upload_images/2962650-a106e00eda73e503.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
二、输入Item名称,选择maven项目,点击ok
![](http://upload-images.jianshu.io/upload_images/2962650-416cb1fe4c17d9dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三、配置git。配置后jenkins可自动从指定的git抓取master分支上最新的代码
![](http://upload-images.jianshu.io/upload_images/2962650-c26342ae473331df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
四、点击add,配置git用户名和密码
![](http://upload-images.jianshu.io/upload_images/2962650-155ad7023b789649.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
五、如果出现下图错误,则证明本机没有配置git ssh key
![](http://upload-images.jianshu.io/upload_images/2962650-d47afe8ea07c9c3c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决上述ssh key问题,可参考以下教程链接
http://www.linuxidc.com/Linux/2014-10/108080.htm
六、点击保存,至此已经可以实现jenkins从git抓取最新的master分支代码。点击立即构建。
点击consoleoutput可看控制台输出信息。如果在这步还报下图错误,这是因为在know_hosts中没有访问git机器的记录。
![](http://upload-images.jianshu.io/upload_images/2962650-edefc0fa10030411.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
解决办法:在Linux下git clone访问一次git 所在的机器的项目,如下图。如果你没有出现这个错误,请忽略。
![](http://upload-images.jianshu.io/upload_images/2962650-dbafff5f36e8d5b0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
再次启动,点击console output可看到成功启动的信息。
![](http://upload-images.jianshu.io/upload_images/2962650-ac12aeb4edbdd280.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
八、至此已完成本教程的第二部分的第一步曲,jenkins从git抓取最新项目然后自动构建打包的过程。从控制台信息中可看出jenkins已经将打好的jar包放在了/root/.jenkins/workspace/..工作空间中。如果你看到了这个图,证明前面的配置都是正确的,可以接着往下走。
第二步:
一、打开jenkins首页,点击系统管理--系统设置,下拉找到找到publish over ssh,进行以下设置(请确保前面的步骤中publish over ssh插件已经安装成功,如果没有发现,那就是还没有安装成功,请返回去安装)。
![](http://upload-images.jianshu.io/upload_images/2962650-3afd243856071b3a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
注:Remote Directory是ssh直连的地址,可以配置每个项目的单独脚本来操作其他····。
细心的童鞋可能在这里可能会发现服务器的IP与jenkins安装的IP是一样的,也就是说都是都在同一台机器上,都是192.168.0.101,这是因为刚好只有这台Linux机器比较方便使用,所以就只用这一台机器做实验了。实际上jenkins安装在Windows上或者Linux上,然后项目部署到另外一台Linux,这样都是可以的,也推荐这么干,只要这里的IP换成部署项目的机器IP就可以了
二、进入上面的已经创建好的jenkinsWeb项目,点击配置,下拉找到Post Steps进行配置。
1、点击
![](http://upload-images.jianshu.io/upload_images/2962650-5f7aa399673ba83b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果没找到这项,证明publish over ssh没有安装成功。
2、接着进行下图配置
![](http://upload-images.jianshu.io/upload_images/2962650-727573fd8cd6f61c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
参数说明:
Transfer SetSource files:表示要上传的本地的jar包及路径,可到工作空间去看。
Remove prefix:表示要上传时要去除的文件夹,即只上传jar包。
remote driectory:即表示执行时的路径,相当于把jar包上传到这里了。
exec commad:要执行的命令脚本。
脚本内容:
![](http://upload-images.jianshu.io/upload_images/2962650-9599db9ebe7af270.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
将此脚本放于上面的Exec commad路径中。
大概说一下这个脚本的意思,大牛请忽略这段吧。先找到正在运行的jenkins这个项目的ID,然后kill掉这个进程,就可以停掉这个项目了。假如你用的不是springboot项目,则灵活应变,例如tomcat发布的项目可以到tomcat的bin目录下运行shutdown.sh就可以了。然后打开root目录,将jenkins上传好的jar包复制到相应的目录,然后执行bootstrap.sh脚本,我这里的bootstrap.sh脚本是用来启动springboot项目,下面也贴上代码,供大家参考。假如是tomcat,同理到tomcat目录bin目录下执行启动脚本即可。
![](http://upload-images.jianshu.io/upload_images/2962650-97bb2b7c4e3d0210.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这里请务必注意第一行,必须制定JAVA_HOME的位置,否则jenkins会报找不到jre的错误。
三、至此,第二步已经配置完毕,点击保存。点击立即构建,点击consoleoutput,就可以看到成功上传jar包到远程Linux并且成功发布项目的信息了。
![](http://upload-images.jianshu.io/upload_images/2962650-2dd1c429e94eddfd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
至此已完成所有jenkins配置。浏览器访问刚才发布的项目
![](http://upload-images.jianshu.io/upload_images/2962650-a6eeaa561e49cb36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
项目代码修改后,只需将代码提交到git master分支,然后登陆jenkins点击立即构建,则可以轻松的进行项目部署。Jenkins亦可进行定时构建部署,当然也可设置当master代码有更新时自动拉取代码进行构建部署,这里就不继续说了。
jenkins下载链接:http://pan.baidu.com/s/1jIx3FcM
教程到此结束,欢迎留言讨论。欢迎转载,转载请务必注明出处。
原文地址