环境准备
本次整合使用jenkins发布github项目到服务器的tomcat,所以需要准备好git、jdk、maven环境,这里列下我的环境版本
JDK:1.8.0.11
Maven:3.6.3
Git:1.8.3.1
能查看各组件版本号说明环境准备OK
jenkins全局设置
系统管理 -> 全局配置
- 配置jdk,别名任取
2. 配置git,别名任取git目录根据安装方式可能会有差别,可通过whereis git命令查看
3. 配置maven,别名任取
安装插件
部署war包到tomcat,需要额外安装插件Deploy to container Plugin
系统管理 -> 插件管理 ->可选插件
在过滤栏中输入Deploy to container Plugin,选中后直接安装
新建项目
新建项目,输入项目名,选择freestyle project
- 源码管理
这里首选需要你在github上有一个web项目,repository url即是你项目的地址,credentials是你github的账号,指定你要发布的分支 - 构建
选择你的maven组件,指定目标,这里用 clean install - 构建后操作
war/file:填你项目install后target里war包的路径
context path:的名字是打包到tomcat的war包名,也是你将来访问项目用的项目名,可以自定义
添加containers:选择tomcat8,credentials为tomcat的账号密码(之所以要配置这个账号,是因为jenkins需要知道打包后把war包部署在什么地方,会利用tomcat的manager),tomcat url为tomcat启动后的根路径
此处需要为tomcat设置管理账号:
tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
该步骤配置完毕,jenkins打包并部署所需要的环境就准备完毕(从github的指定路径拉取项目、通过maven打包、将打好的包部署到指定tomcat)
至此发布项目就没问题了,点击立即构建:
控制台打印SUCCESS,服务器的webapps目录下生成了最新的war包,项目可以正常访问
可能遇到的坑
webapps需要保留manager项目,如果没有,jenkins发布会报如下错误:
由于上面只配置了tomcat url,并没有明确指明将打包好的文件传到哪个目录里,那么jenkins是如何完成这个步骤呢,其实是利用了tomcat的manager项目,我们根据之前的经验,初始化tomcat的webapps有几个目录,examples,manager,ROOT等等,习惯上我们会在使用的时候将这些目录清空,但是这里要注意保留manager,因为jenkins会利用这个manager项目定位到tomcat的位置,同时要注意设置tomcat的管理员账号
如果是从docker里pull了tomcat的最新镜像,有可能webapps目录下是空的,可以从其他地方拷贝manager到webapps下