Git+GitHub+jenkins+Tomcat实现自动部署项目

我们这里要实现的效果是:团队通过Git把项目push到GitHub上去,然后Jenkins通过GitHub的webhook(钩子)来检测到GitHub更新了,接着Jenkins就会自动从GitHub上pull项目下来部署到本地的Tomcat上,并且自动发送邮件给对应的人

准备步骤:

第一步:学Git,推荐一个博文

https://blog.csdn.net/qq_36243942/article/details/81169913

第二步:创建GitHub账户
第三步:下载Jenkins,去官网下载https://jenkins.io/download/ 然后选择war包下载

第四步:下载两个Tomcat,具体可以看我的这篇文章

https://blog.csdn.net/weixin_41641941/article/details/90441316

第五步:把jenkins的war包扔进去其中一个Tomcat的Webapps目录下,然后启动Tomcat,然后再浏览器输入http://localhost:8083/jenkins/(我这里的Tomcat端口是8083),就可以看到jenkins的页面了

一开始初始的管理员密码,jenkins自动生成的,根据上面红色的路径找到密码,拷到下面的输入框中。
然后会让你选择插件安装,我一开始是选择自定义安装(这个会帮你装很多插件,后面就不用自己装了)

然后等待插件安装完毕

然后安装完了就让你完了以后到创建用户,这里可以自己选择右下角的“Continue as admin”这样就可以自己继续用管理员账户

完了以后进入jenkins的主页

第六步:配置jenkins
点击左边的"系统管理"---->“Global Tool Configuration” 配置 jdk 、maven等信息




第七步:构建项目
回到工作台点击“新建Item”

然后点击构建一个Maven项目

如果发现没有Maven项目,是因为没有Maven Integration plugin插件
点击 “系统管理” ---->管理插件

出现下面界面,点击可选,然后在过滤那里输入“Maven Integration plugin”,点击安装插件,然后重启Jenkins就可以了

回到新建Item,选择构建Maven项目

下面我显示我填了的部分,没有显示的说明我没有配置

填写描述

在源码管理选择Git,然后填写GitHub的URL,以及账户密码,但是账户密码要先在旁边的“添加”里面添加到系统设置里

然后根据你的maven项目结构有没有外面包多一个文件夹来设置pom.xml的路径,并且设置好maven项目的构建操作是什么,这里的“clean compile package -DskinTests”是指清除、编译、打包成 .war文件


然后到最后点击“增加构建后操作”,选择Deploy war/ear to a container,如果没有这个这个插件就去安装Deploy war to a container插件

然后点击“add container”添加Tomcat容器,选择你要部署对应的版本

那个Tomcat的用户密码要打开Tomcat目录下的conf/tomcat-users.xml文件,添加下面几行<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="admin" password="admin" roles="manager-gui,manager-script"/> </tomcat-users>

那个Context path虽然可以不填文件名,但还是填文件名好一点,想了解的可以看我另一篇博客:

https://blog.csdn.net/weixin_41641941/article/details/90512186

这样就可以让jenkins来自动部署到Tomcat了

第八步:点击保存

第九步:去写一个Maven项目上传到GitHub
首先要新建一个maven项目,然后将Maven项目改成Web格式的,具体怎么改可以看我的另一篇博客

https://blog.csdn.net/weixin_41641941/article/details/90490133

接着项目的pom.xml文件也要进行配置,下面只要是有注释的都要着重配置

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.ringo</groupId><artifactId>ShowDemo</artifactId><version>0.0.1-SNAPSHOT</version><!--指定编译之后会生成war文件,不改就会默认是jar文件 --><packaging>war</packaging><name>ShowDemo</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><!--指定maven编译之后的war的文件名 --><finalName>ShowDemo-0.0.1-SNAPSHOT</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.1.1</version><configuration><!--指定web.xml等文件所在位置 --><webXml>src\java\webapp\WEB-INF\web.xml</webXml><!--指定jsp等文件所在位置 --><warSourceDirectory>src\java\webapp</warSourceDirectory></configuration></plugin></plugins></build>
</project>

然后为了展示效果,先写一个index.jsp来展示页面内容

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p><strong>这个是用来展示怎么用jenkins的demo</strong></p>
</body>
</html>

现在就可以把项目上传到GitHub上面了,用Git把项目上传到了GitHub

现在让我们来试试手动构建项目能不能自动部署到Tomcat上,现在先把另一个Tomcat打开,然后打开jenkins,点击构建项目的按钮

然后左下角就会出现这个进度条

然后点进对应的Item里面

可以看到旁边的构建历史里是蓝色的球,说明构建成功

下面是球颜色的其他意思

之后我们也可以点击构建历史的小球旁边的下拉菜单来看看详细的构建信息

最下面如果显示下面字段说明项目已经成功部署到Tomcat上去了

最后去浏览器输入URL打开

----------------------------------------------分界线---------------------------------------------------------

目前已经用jenkins实现了自动构建和部署项目,现在我们来添加自动检测GitHub更新,并自动拉取项目构建部署和构建完之后发送邮件给特点人员的功能

第一步:下载ngrok这个神器,下载地址:https://ngrok.com/download

第二步:打开ngrok.exe文件,输入ngrok http 你的jenkins服务器的端口号
因为我的jenkins是放在端口号为8083的Tomcat,所以我是输入ngrok http 8083
然后就出现这个画面,http://f8ea09e1.ngrok.io 就相当于你的jenkins的公网地址,这就是ngrok的神奇之处(不过前提是你的电脑能连上外网)

第三步:去GitHub上设置webhook(钩子)

点击对应仓库的setting

点击webhooks–>add webhooks

之后会让你输入密码,输入就好了,然后在URL一栏填入jenkins地址/jenkins/github-webhook/,接着点击Add webhook

然后小球显示灰色说明github和jenkins成功连接上了,同时gnork也有200的信息


这里webhook有一个小坑就是当你更改了URL的一些信息之后点击update webhook,会显示红色小球,这时只要将这个webhook删掉重新设置一个就好了

第三步:去jenkins上设置GitHub的配置
首先确保你的jenkins安装了一下插件

打开对应Item的配置,找到构建触发器,勾选GitHub hook trigger for GITScm polling,

现在我们动手来试试效果,我先修改了index.jsp的显示内容

然后用GitBush提交到GitHub

然后同时ngrok也有反应了,显示GitHub向jenkins发送信息了

然后我们在jenkins看到项目已经编译部署成功了

去浏览器打开看看

----------------------------------分界线------------------------------------------------------------------------

现在我们来给jenkins加上邮件通知功能,这里的坑超多。。。。。
第一步:安装Email Extension Plugin插件

这里如果在插件搜索这里找不到的话可以去官网下载http://updates.jenkins-ci.org/download/plugins/email-ext/
下载之后会有一个.hpi文件,然后去到jenkins的插件安装,点击高级

然后将刚刚下载的.hpi文件上传上去,安装完毕记得重启jenkins

第二步:配置jenkins的邮件操作
进入到jenkins配置,点击Configure System

然后配置jenkins URL和系统管理员邮箱,这里我用的是QQ邮箱,一开始用163邮箱一直搞不起来,显示smtp.163.com连接不上,邮箱记得要开通smtp服务,怎么开通可以百度

填写Extended E-mail Notification,这里的QQ邮箱名要和上面的系统管理员邮箱的账户保持一致,还有就是那个密码不是邮箱密码,是开通smtp服务是给你的授权码,很多博文都没有说这件事!!!(smtp配置点旁边的高级)

填写邮件的内容信息,下面有Default的都是在后面可以直接当作变量名来调用的

这是我在网上找的邮件内容

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"offset="0"><table width="95%" cellpadding="0" cellspacing="0"style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"><tr><td><h2><font>来自Mr.Jenkins的邮件通知</font></h2></td></tr><tr><td><br /><b><font color="#0B610B">构建信息</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><ul><li>项目名称&nbsp;:&nbsp;${PROJECT_NAME}</li><li>触发原因&nbsp;:${CAUSE}</li><li>构建日志&nbsp;:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li><li>单元测试报告&nbsp;:<a href="${BUILD_URL}testReport/">${BUILD_URL}testReport/</a></li><li>工作目录&nbsp;:&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li></ul></td></tr><tr><td><b><font color="#0B610B">构建日志:</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><textarea cols="80" rows="30" readonly="readonly"style="font-family: Courier New">${BUILD_LOG}</textarea></td></tr></table>
</body>
</html>

记得一开始用的时候一定要把这个勾上,勾上之后会在控制台输出邮件发送的详细信息,有利于找错误

然后还有下面的邮件通知要配置,这里与上面配置一样,就是可以测试能不能接受邮件,但有时候通过了测试也收不到邮件,所以我觉得没什么用。。。。。

第三步:配置Item的构建后操作
进入Item的配置里面,选择增加构建后操作,选择Editable Email Notification

然后配置,这里其实都可以不用动,因为前面都已经设过了,$调用的就是我们前面设置的变量,但还是说一下这几个配置属性什么意思:

Project Recipient List:这个项目的需要发送邮件给哪些人,可以在这里输入多个邮箱,中间以英文逗号隔开。
——
Project Reply-To List:保持默认即可,这个是收到邮件的人回复邮件时候回复给谁用的,一般不会回复邮件。
——
Content Type:可以选择Html或者Default也行,因为我们在jenkins系统设置中的默认格式就是html。
——
Default Subject: 邮件主题,可以书写成:XXX项目自动化测试通知:$PROJECT_NAME - Build # $BUILD_NUMBER - B U I L D S T A T U S ! 分 析 下 这 几 个 参 数 什 么 意 思 : BUILD_STATUS! 分析下这几个参数什么意思: BUILDS​TATUS!分析下这几个参数什么意思:PROJECT_NAME 构建项目的名称,也就是selenium_2_combat;# B U I L D N U M B E R 构 建 的 号 码 ; BUILD_NUMBER 构建的号码; BUILDN​UMBER构建的号码;BUILD_STATUS 构建状态,这几个参数,它会自动读取,按照这种格式书写即可。
——
Default Content:邮件内容,这块是重点,最能体现报告的重点


然后点击Advanced Settings…

把默认的trigger给删除掉,然后新增一个trigger,然后选择Always选项,如此便不管构建成功还是失败都会发送邮件。下面的配置也是可以直接用默认的就可以了,当然你也可以自己改

现在我们来试一下更新项目,更新完之后我就设置的收件邮箱就收到了下面的邮件

希望这篇博文能帮到大家

Window环境下的Git+GitHub+jenkins+Tomcat实现自动部署项目并发送构建邮件相关推荐

  1. shell文件管理jenkins构建过程---window环境下报错:找不到shell文件

    window环境下报错:找不到shell文件.查看jenkins本地文件,可以查看到shell文件: 检查job配置: 发现使用的是Execute shell; 这个项目只能在liunx下使用,在wi ...

  2. 在linux下搭建git环境,在linux下搭建git github开发环境

    在linux下搭建git github开发环境 github git linux 1.安装git sudo apt-getinstall git 2.Generating SSH keys 2.1.g ...

  3. 实现在CentOS7环境下搭建个人github博客

    实现在CentOS7环境下搭建个人github博客 主机要求:必须是centos环境版本可以不一样,假如你用的是其他版本的linux系统,只不过是命令不太一样. Tips:这里提前说下,对于Ubunt ...

  4. 使用git推送代码到开源中国以及IDEA环境下使用git

    2019独角兽企业重金招聘Python工程师标准>>> 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多 ...

  5. Windows环境下通过Git来管理自己的Android代码

    前面已经介绍了在Windows下使用git工具来下载Android的源代码,Windows环境下通过Git得到Android源代码,这里记录我使用git工具来管理我自己的代码,git是一种分布式的项目 ...

  6. Android 源码获取-----在Windows环境下通过Git得到Android源代码

    在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过  ...

  7. Window环境下配置MySQL 5.6的主从复制、备份恢复

    Window环境下配置MySQL 5.6的主从复制.备份恢复 1.环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 ...

  8. 在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会

    在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会 乱码原因是因为在linux系统下没有中文字体,所以转换的时候乱码,需要我们手动把window系 ...

  9. git+github+jenkins自动发布

    git+github+jenkins 1. 说明 1.1 主机的配置 1.2 安装 2. 具体步骤 2.1 将开发者公钥添加到github 2.2 github上新建项目仓库 2.3 开发者提交文件测 ...

最新文章

  1. 媒体查询漫谈——@media Queries
  2. 复旦计算机学硕分数线,复旦大学2019考研分数线公布,复旦复试经验请收好!...
  3. android EnMicroMsg.db安卓微信数据库获得密码的源码
  4. 微信小程序获取用户手机号--官方示例
  5. 500万数据mysql_mysql 单表500万数据经过处理后新增到新表
  6. matlab 声明多个变量,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  7. HDU1256 画8【打印图案】
  8. MATLAB R2018a 安装教程
  9. linux 从github拉取更新_2020年的GitHub年度报告,我看出了这些不一样的点
  10. Problem 1036 四塔问题
  11. 哈希存储:字符串存储、数字存储
  12. win7操作系统练习题(带答案,有问题可直接在博客或公众号中问)
  13. micro usb接口定义图
  14. 毛伟:重塑网络根基——国际形势使然,技术升级必然
  15. 什么是加密狗?加密狗由来
  16. E680手机上能用的 MPlayer
  17. python输入按逗号分开_python print 按逗号或空格分隔的方法
  18. 国内pt站点都有什么资源,哪些值得pter入手?
  19. mysql8并行查询_并行查询(Parallel Query)
  20. 文本动画过渡效果AE模板

热门文章

  1. 现在却好像是个历经沧桑的老人一样
  2. c语言cstdio头文件,头文件cstdio和stdio.h的区别?
  3. 社区团购重启,有钱的巨头们不能再为所欲为
  4. python杂志订阅系统详细设计_图书管理系统详细设计报告
  5. mysql学习笔记。着重号、IFNULL、常量查询、 DESCRIBE
  6. SLAM Cartographer(9)局部轨迹生成器
  7. c语言高斯模糊源码,C++实现纯高斯模糊算法处理灰度图片
  8. 居间合同可以弄电子合同吗
  9. C++中输入字符串的几种方法
  10. flink读写filesystem