jenkins自动构建部署

Posted pokid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins自动构建部署相关的知识,希望对你有一定的参考价值。

环境 centos7   tomcat8.5.37   maven3.3.9   jdk8   git1.8.3.1

安装jdk,tomcat,maven,git(环境变量,配置文件什么的自行百度)

部署jenkins(下载jenkins.war扔进tomcat即可,如果报错了就将war包解压一下再扔进去)

配置jenkins,插件管理,系统设置,全局工具设置,添加凭证等等

(注意要安装deploy to a container插件才能构建后自动部署)

 

下面就是重点了

构建规则

这里我选的是定时构建, H 1 * * *表示每天凌晨一点构建一次

技术分享图片

 

部署(重点)

技术分享图片

部署这块我踩了不少坑

需要注意的是:

tomcat默认不不允许远程访问的,所以需要先设置允许远程访问(jenkins里报401就是这个原因)

 进入tomcat9091-2/webapps/host-manager/META-INF/context.xml   allow 修改为 allow="^.*$" 

技术分享图片

jenkins里需要的tomcat用户密码在conf/tomcat-users.xml里(jenkins里报403就是这个原因)

技术分享图片

 

这整段改成

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-status"/>
  <user username="tomcat" password="123" roles="tomcat"/>
  <user username="both" password="123" roles="tomcat,role1"/>
  <user username="role1" password="123" roles="role1"/>
  <user username="admin" password="123" roles="manager-gui,manager-script,manager-status"/>

 

需要注意的是,不管war包名是什么,只要contextPath里写的是“/”,部署在tomcat里的war包名都是ROOT.war(这点还是很好的,以前为了在浏览器里不带项目名直接访问,都是自己先删掉tomcat原来的ROOT.war然后把生成的ROOT.war在放进去)

另外网上说的项目名为ROOT.war会报错,我测了并没有报错。

 

还有一点,就是项目过大的问题。有这么几点建议

maven里的jar包最好不要让jenkins去下载,下载好了后放到maven仓库里去(否则容易断开连接或者内存溢出导致构建失败,为什么会内存溢出?反正我的阿里云2G内存不够用)

杀掉电脑里的一些其他进程

重启大法:重启tomcat——>重启系统

加内存(怎么加自行百度):jvm内存——>maven内存——>tomcat内存(防止项目过大无法上传)——>加电脑内存(终极解决方案哈哈)

 



以上是关于jenkins自动构建部署的主要内容,如果未能解决你的问题,请参考以下文章

jenkins和docker实现自动化构建部署

Jenkins - 一篇就能上手 Gitee(码云)代码自动化构建

Jenkins与gitlib实现自动化部署与持续构建

码云Webhook触发Jenkins自动构建 - Jenkins演练

gitlab+jenkins自动化上线部署持续集成

jenkins集群测试环境原理部署