Jenkins 持续集成——springboot项目一键打包发布

最近小组项目几经坎坷终于上线,运维这块我并没有负责,但是发现同事们发包的时候还在获取代码-->本地编译打包-->远程登录linux服务器-->手动执行shell,在分布式部署的时候如果机器比较多这简直是一个噩梦。。。心里就琢磨找一找自动构建发布的工具吧,毕竟DevOps最近微软极力推崇,开源世界更是丰富多彩,惊喜不断。google一下发现jenkins是很不错的一款,跨平台,支持多语言,支持Docker,插件繁多,功能五花八门,还支持中文界面balabala,真乃神器,就拿它入手。

1、什么是Jenkins

Jenkins是一个跨平台,持续集成和交付应用程序的工具,可以不断构建和测试项目,使开发人员能够更轻松地将更改集成到项目中,并使用户更轻松地获得新的构建。它还允许您通过提供强大的方法来定义构建管道并与大量测试和部署技术集成,从而持续交付软件。

2、Jenkins安装

   https://jenkins.io/ 官网下载,安装包多种,最简单的方式是下载war包,然后执行
java -jar jenkins.war

jenkins启动成功,命令面板上有一串密码,浏览器输入http://localhost:8080(建议使用chrome,其他浏览器样式兼容不太好),登录时候复制进去。开启jenkins之旅。

 

3、Jenkins 初始化

①第一次登录到Customize Jenkins页,选择Install suggested plugins。

然后创建用户,登录后跟着向导点击创建一个新任务,如下

Jenkins 持续集成——springboot项目一键打包发布_第1张图片

 

②发现不能像网上其他教程一样直接新建maven项目,其实是这样,在安装推荐插件的时候缺少maven的集成插件,要自己安装,安装步骤在首页菜单-->系统管理-->管理插件

 

Jenkins 持续集成——springboot项目一键打包发布_第2张图片

 

在可选插件中搜索  maven intergration plugin,这里多说一句,插件种类繁多,直接搜关键字maven,下面出来一大堆,有的简单有的功能繁杂,可根据实际情况选择使用,同时我新安装的插件还有

git、publish over ssh、 SSH plugin。当然,不同环境需要的插件肯定是不一样的,一开始要用到什么插件其实我不是特别清楚,需要初学者去摸索,这里只提供思路
 
Jenkins 持续集成——springboot项目一键打包发布_第3张图片
 
安装完后介绍下一步,全局的配置。
③项目全局配置包括环境变量、mvn、git、邮件、远程web服务器(linux),如果安装了其他功能的插件,可能还会有相应的配置。
功能入口:系统管理-->系统设置和全局工具配置。
 
Jenkins 持续集成——springboot项目一键打包发布_第4张图片
 
先看系统工具设置,JDK、maven、git本地都已存在,直接添加本地的即可。
系统设置下面主要有jenkins主目录、maven repository、git、SSH Remote、mail配置等,具体操作根据提示填表单就可以了。需要注意的是SSH我使用了两个,分别是 publish over ssh 和 SSH plugin ,至于为啥两个,因为用的环境windows, publish over ssh 在远程执行Shell命令时会出现一些问题,linux系统使用jenkins是正常的,这个后面再具体配置项目的时候会讲到。
 
④全局配置完成后就可以创建项目,点击新建-->构建一个maven项目
 
Jenkins 持续集成——springboot项目一键打包发布_第5张图片
 
如果不存在构建maven项目,请返回到第②步,网上其他教程基本都把这步忽略了。
点开后就是详细的各种配置,下面结合自己浅陋的认知,来逐个介绍一下。
 
Jenkins 持续集成——springboot项目一键打包发布_第6张图片
 
General 基本设置,注意到丢弃旧的构建,jenkins默认情况下会保存每次的构建结果,时间久了可想而知硬盘容易塞满,我在实际使用的过程中发现确实很占硬盘,使用这个功能可以删除历史构建保持jenkins工作目录的轻便。
 
Jenkins 持续集成——springboot项目一键打包发布_第7张图片
 
源码管理工具,使用git,添加地址、用户名密码,设置使用分支,git验证也可以使用ssh key的方式。
 
Jenkins 持续集成——springboot项目一键打包发布_第8张图片
 
构建触发器,顾名思义就是如何触发构建操作,在这可以设置自动定时执行,还可以远程触发构建,远程机器通过访问url http://jenkins服务器IP:8080/job/项目名称/build?token=TOKEN_NAME来触发构建。丢给小组同事们这一个url后他们就可以潇洒的发测试包啦。
 
Jenkins 持续集成——springboot项目一键打包发布_第9张图片
 
构建环境和preSteps主要是触发构建之前的一些操作,删除workspace,执行远程命令等等,一开始配置过这些,后来觉得就目前来讲,我如果没有打包成功,就别操作远程服务器了。于是把执行shell停止server、备份挪到了打包成功后,当然如果有特殊场景那就另说啦。
 
Jenkins 持续集成——springboot项目一键打包发布_第10张图片
 
这块就是打包的配置了,在 Goals and options上设置了clean package -Dmaven.test.skip=true跳过测试步骤。
 
Jenkins 持续集成——springboot项目一键打包发布_第11张图片
Jenkins 持续集成——springboot项目一键打包发布_第12张图片
 
这块是重中之重,是紧跟在打包之后的操作,我选的的打包成功之后再进行,先远程执行shell停掉 tomcat,然后备份文件,在上传打包后的新文件。
在远程执行shell的时候需要特别注意一点:
如果你的jenkins是部署在linux上面的,可以不使用
source /etc/profile
source ~/.bash_profile
但是,我用的是windows,远程执行shell的时候必须要source一下,否则,永远也不会成功,这块一开始不太了解,卡了一天才明白。
说到这,可能大家还有一个疑问,其他一些教程一般是在linux服务器配置好shell脚本,然后在这个配置里面直接远程执行即可,在这并不推荐这么做,原因很简单,如果在集群环境下需要修改shell脚本或者tomcat调参,不如在这配置shell来的方便些。
然后就是上传打包好的文件,再执行启动命令就OK了。
 
Jenkins 持续集成——springboot项目一键打包发布_第13张图片
 
后面就是构建设置,发送邮件什么的可以在这配置。
最后一步是构建后操作,和构建设置这一步类似,根据规划自行配置,不再赘述。
保存完就配置好了。
 

4、Jenkins简单使用

在系统主菜单-->My Views中可以看到刚刚配置好的项目
Jenkins 持续集成——springboot项目一键打包发布_第14张图片
点击名称可进入该项目具体的菜单目录,也可以把鼠标放到名称后面,有个倒三角冒出来,点击弹出悬浮菜单。
点击配置可修改第3步的配置,修改记录是git的提交记录,工作空间是项目的整体目录,模块与之对应。
点立即构建即可进行构建,会在左侧看到项目正在构建。
Jenkins 持续集成——springboot项目一键打包发布_第15张图片
 
点击进去后可看到当前项目正在编译的信息
 
Jenkins 持续集成——springboot项目一键打包发布_第16张图片
 
查看Console Output可以查看正在构建时输出的日志信息,之前配置的每一步操作都会输出,还有打包的日志信息,特别惊艳。此时休息一下喝杯茶,等待控制台输出success的信息,大功告成。
最后多说一句,Jenkins支持用户权限控制,可自行配置哦。

 

你可能感兴趣的:(java)