• -------------------------------------------------------------
  • ====================================

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

docker dewbay 6年前 (2019-04-12) 4632次浏览 已收录 0个评论 扫描二维码

最近小组项目几经坎坷终于上线,运维这块我并没有负责,但是发现同事们发包的时候还在获取代码–>本地编译打包–>远程登录 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。

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

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

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

git、publish over ssh、SSH plugin。当然,不同环境需要的插件肯定是不一样的,一开始要用到什么插件其实我不是特别清楚,需要初学者去摸索,这里只提供思路。

安装完后介绍下一步,全局的配置。
③项目全局配置包括环境变量、mvn、git、邮件、远程 web 服务器(linux),如果安装了其他功能的插件,可能还会有相应的配置。
功能入口:系统管理–>系统设置和全局工具配置。

先看系统工具设置,JDK、maven、git 本地都已存在,直接添加本地的即可。
系统设置下面主要有 jenkins 主目录、maven repository、git、SSH Remote、mail 配置等,具体操作根据提示填表单就可以了。需要注意的是 SSH 我使用了两个,分别是 publish over ssh 和 SSH plugin ,至于为啥两个,因为用的环境 windows,publish over ssh 在远程执行 Shell 命令时会出现一些问题,linux 系统使用 jenkins 是正常的,这个后面再具体配置项目的时候会讲到。

④全局配置完成后就可以创建项目,点击新建–>构建一个 maven 项目

如果不存在构建 maven 项目,请返回到第②步,网上其他教程基本都把这步忽略了。
点开后就是详细的各种配置,下面结合自己浅陋的认知,来逐个介绍一下。

General 基本设置,注意到丢弃旧的构建,jenkins 默认情况下会保存每次的构建结果,时间久了可想而知硬盘容易塞满,我在实际使用的过程中发现确实很占硬盘,使用这个功能可以删除历史构建保持 jenkins 工作目录的轻便。

源码管理工具,使用 git,添加地址、用户名密码,设置使用分支,git 验证也可以使用 ssh key 的方式。

构建触发器,顾名思义就是如何触发构建操作,在这可以设置自动定时执行,还可以远程触发构建,远程机器通过访问 url http://jenkins 服务器 IP:8080/job/项目名称/build?token=TOKEN_NAME 来触发构建。丢给小组同事们这一个 url 后他们就可以潇洒的发测试包啦。

构建环境和 preSteps 主要是触发构建之前的一些操作,删除 workspace,执行远程命令等等,一开始配置过这些,后来觉得就目前来讲,我如果没有打包成功,就别操作远程服务器了。于是把执行 shell 停止 server、备份挪到了打包成功后,当然如果有特殊场景那就另说啦。

这块就是打包的配置了,在 Goals and options 上设置了 clean package -Dmaven.test.skip=true 跳过测试步骤。

这块是重中之重,是紧跟在打包之后的操作,我选的的打包成功之后再进行,先远程执行 shell 停掉 tomcat,然后备份文件,在上传打包后的新文件。
在远程执行 shell 的时候需要特别注意一点:
如果你的 jenkins 是部署在 linux 上面的,可以不使用
source /etc/profile
source ~/.bash_profile
但是,我用的是 windows,远程执行 shell 的时候必须要 source 一下,否则,永远也不会成功,这块一开始不太了解,卡了一天才明白。
说到这,可能大家还有一个疑问,其他一些教程一般是在 linux 服务器配置好 shell 脚本,然后在这个配置里面直接远程执行即可,在这并不推荐这么做,原因很简单,如果在集群环境下需要修改 shell 脚本或者 tomcat 调参,不如在这配置 shell 来的方便些。
然后就是上传打包好的文件,再执行启动命令就 OK 了。

后面就是构建设置,发送邮件什么的可以在这配置。
最后一步是构建后操作,和构建设置这一步类似,根据规划自行配置,不再赘述。
保存完就配置好了。

4、Jenkins简单使用
在系统主菜单–>My Views 中可以看到刚刚配置好的项目

点击名称可进入该项目具体的菜单目录,也可以把鼠标放到名称后面,有个倒三角冒出来,点击弹出悬浮菜单。
点击配置可修改第 3 步的配置,修改记录是 git 的提交记录,工作空间是项目的整体目录,模块与之对应。
点立即构建即可进行构建,会在左侧看到项目正在构建。

点击进去后可看到当前项目正在编译的信息

查看 Console Output 可以查看正在构建时输出的日志信息,之前配置的每一步操作都会输出,还有打包的日志信息,特别惊艳。此时休息一下喝杯茶,等待控制台输出 success 的信息,大功告成。

最后多说一句,Jenkins 支持用户权限控制,可自行配置哦。

作者:Allen716
来源:CSDN
原文:https://blog.csdn.net/wshl1234567/article/details/78999920/
版权声明:本文为博主原创文章,转载请附上博文链接!


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Jenkins 持续集成——SpringCloud项目一键打包发布
喜欢 (3)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址