技术环境搭建
jenkins:按照网络技术文章下载war放入tomcat运行,个人建议jenkins和目标服务在同一个服务器,我们使用jenkins不就是为了快速部署更新版本吗,如果放入本地运行构建的包再远程传输过去基本就是脱裤子放屁了-多此一举了对吧,至于配置基本上和网络上一直,个别注意点下面将
git:远程服务使用的是gitee,主要是因为它是免费的,本地开发电脑要按照git客户端
maven:在目标服务器放入和开发环境同样的maven版本
流程
开发电脑上传git------jenkins构建(拉取新代码,maven构建,放入tomcat或命令运行)---tomcat
这里用的是常见的tomcat作为运行容器,docker的话要准备一台性能好点的服务器才能测试
这里就简单的说一说注意的地方
1、构建后的包如何放入tomcat
网上很多说不用在构建后操作,这个模块里去设置,只需要在构建里编写shell或bat批量命令就能实现
经过我反复测试,发现这里编写批处理命令是可以从jenkins工作空间将war复制到tomcat中,也能实现清除原有的war和历史文件,并重命名war,但是唯独在调用tomcat的bin目录下的shutdown.bat和startup.bat时总是会包“此处不应该出现=2048""”,按照网络上的说法把catalina.bat中的设计2048那行去除双引号,事实证明没有用的,所以最终这个方式流产了,没有解决掉这个问题
第二种方式就是利用使用构建后操作,实现我们的目标
如果要让jenkins获取操作tomcat权限,就要在tomcat的用户xml文件里配置上一个用户供jenkins配置这一步使用,
网上很多说第一行中使用target\项目.war,事实证明这样不行,会提示找不到的,前面要加上**\
第二个空格就是可以从jenkins的构建war目录里看到target目录前一个就是他,我这里写个ruoyi-admin的例子吧,
第三个空格是tomcat中配置的用户,
最后一个是tomcat路径识别,也就是说这个方式不是通过文件直接复制的,而是通过地址传递过去的,因此在tomcat停止运行下,jenkins是无法实现构建发布的哦
最后还有个情况就是war在tomcat中运行有两种方式
1、使用war名称为ROOT,这个要注意了jenkins上述步骤没有对war重命名所以要解决这个问题才能用这个运行方式
2、构建后不改名放入tomcat,那就要看前端要不要求戴上项目路径了,如果要求不带,那么就要在server.xml中配置下去掉项目路径
<Context path ="" docBase="这里是不带.war扩展名的包名称" reloadable="true" crossContext="true"/>
发现这样前端会爆找不到接口,就要清理tomcat缓存数据多调试了