jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)

一、jenkins是什么?

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。其功能包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

二、手动部署与自动化部署对比

2.1、手动部署
每次都要经过检出(或拉取)最新代码,然后本地打包,再上传war包到服务器然后再进行部署
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第1张图片

2.2、自动化部署
可实现开发人员只需推送代码,打包还有部署都是由jenkins自动化进行打包部署
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第2张图片

三、环境说明

我的jenkins,tomcat都是安装在本地windows环境,git远程仓库在虚拟机centos6.5环境上
centos搭建git远程仓库可参考资料https://blog.csdn.net/weixin_42765596/article/details/103920079

四、jenkins下载与启动

下载地址:https://jenkins.io/,直接下载war包即可
启动:粘贴war包到tomcat的webapps目录下启动tomcat即可

五、配置jenkins

5.1 jenkins启动后,浏览器访问http://IP:8080/jenkins,输入初始密码(根据下图红框找到你安装的对应位置进行复制)
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第3张图片
5.2 安装推荐的插件
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第4张图片
5.3创建第一个用户
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第5张图片
5.4 配置jenkins必要插件
5.4.1 Deploy to container插件用于把打包的应用发布到远程服务器
在这里插入图片描述
5.4.2 Publish Over SSH用于连接远程服务器
在这里插入图片描述
5.5 配置Configure Global Security
设置允许用户注册,忘记用户名密码时还可以通过重新注册进行使用,测试环境下设置任何人可以做任何事,方便操作(正式环境慎用)
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第6张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第7张图片
5.6 配置Global Tool Configuration
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第8张图片
5.6.1 配置MAVEN的settings.xml
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第9张图片
5.6.2 配置JDK
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第10张图片
5.6.3 配置git
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第11张图片
5.6.4 配置MAVEN
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第12张图片

六,构建项目

6.1创建一个新的item
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第13张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第14张图片
6.2添加git远程仓库以及ssh私钥
git远程仓库搭建可以参考https://blog.csdn.net/weixin_42765596/article/details/103920079
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第15张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第16张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第17张图片
6.3增加构建步骤(即打包war的操作)
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第18张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第19张图片
6.4测试构建
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第20张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第21张图片
控制台输出日志显示BUILD SUCCESS说明构建(打包war包)成功
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第22张图片
6.5 配置构建后操作(即将构建好的war包部署到tomcat运行)
6.5.1 首先需要配置一下tomcat
找到tomcat下conf下的这三个文件
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第23张图片
tomcat-users.xml:增加tomcat_user用户

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第24张图片
server.xml:设置utf-8编码(URIEcoding=“UTF-8”)
在这里插入图片描述
context.xml:设置任何ip可访问(^.*$)
在这里插入图片描述
6.5.2 配置构建后操作
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第25张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第26张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第27张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第28张图片
6.6测试构建后操作(即部署到tomcat)
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第29张图片
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第30张图片
控制台显示BUILD SUCCESS 和Finished:SUCCESS时说明打包并部署成功
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第31张图片
访问部署后项目:
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第32张图片

至此,jenkins的打包与部署都已配置好,要让jenkins实现自动打包和部署,还需配置git的钩子程序,这样就可以实现开发人员只需推送最新代码到主分支,当推送最新代码时触发钩子程序,钩子程序通知jenkins去自动打包和部署

七、编写git钩子程序实现自动化打包部署

7.1 关闭防止跨站点请求伪造
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第33张图片
在这里插入图片描述
7.2构建触发器
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第34张图片
7.3编写git钩子程序(通过curl命令触发jenkins自动打包部署)
7.3.1 进入git远程仓库下的hooks目录,创建post-receive文件
在这里插入图片描述
7.3.2 编写curl命令
在post-receive文件加入以下curl命令
curl -X post -v -u root:root 10.254.63.162:8080/jenkins/job/tpi/build?token=AUTOGIT_TOKEN
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第35张图片
(这里需要注意,post-receive不要在windows环境创建好文件再上传到虚拟机git上,这样在推送代码时会报remote: error: cannot run hooks/post-receive: No such file or directory找不到这个文件,原因是windows下创建的文件与centos创建的文件编码是不一样的)
7.3.3设置文件权限
[root@localhost hooks]# chmod +X post-receive

八、测试自动触发

8.1 修改项目登录页面
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第36张图片
8.2 推送到远程git仓库

推送成功后jenkins自动进行了构建
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第37张图片
8.3查看控制台
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第38张图片
8.4 访问登录页面
jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)_第39张图片

九、参考资料

https://blog.csdn.net/ming19951224/article/details/80958761
https://blog.csdn.net/GW569453350game/article/details/52328986
https://www.cnblogs.com/guanyf/p/10605987.html
https://www.jianshu.com/p/5f671aca2b5a
https://blog.csdn.net/Shen_Junxiao/article/details/85245390
https://www.cnblogs.com/lbrs/p/11704750.html

你可能感兴趣的:(jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细))