通过Jenkins自动构建dubbo服务时的问题汇总
程序员文章站
2022-06-27 14:15:01
最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了Jenkins用于dubbo服务的发布。由于第一次使用,过程中也遇到了一些问题,记录与此 Q1、DubboShutdownHook 问题描述 打包/停止原进程/拷贝/解压 过程 ......
最近接触新的dubbo项目,项目初始时,测试环境的提供者服务发布较频繁,奈何公司又没有自动发布工具,遂自己在测试环境中搭建了jenkins用于dubbo服务的发布。由于第一次使用,过程中也遇到了一些问题,记录与此
q1、dubboshutdownhook
问题描述
打包/停止原进程/拷贝/解压 过程一切正常。在执行启动脚本正常执行,可惜服务就是未正常启动,手动启动正常。翻查启动日志发现一段警告信息:
dubboshutdownhook warn unable to register log4j shutdown hook because jvm is shutting down. using simplelogger
解决
初步判断是与log4j相关,最终发现与项目中log4j2.xml相关。可移步:http://javahonk.com/unable-to-register-shutdown-hook-because-jvm-is-shutting-down/
可以log4j2.xml中添加shutdownhook=”disable”
完整内容如下
<?xml version="1.0" encoding="utf-8"?> <configuration status="info" shutdownhook="disable"> ... </configuration>
bingo smile
q2、jenkins构建完成后杀死衍生进程
问题描述
在解决完上一个问题后,没有出现那一段警告信息了,本以为可以偷懒了,谁知道dubbo服务依旧还是没有启动,这时候翻查日志,对比手动启动的日志无任何不同,陷入沉思。依旧是,正常执行脚本,日志也说明已经启动,可就是没有该进程,难道是被什么给杀掉了?
于是带着这个思路去搜索,jenkins杀死进程
发现了一条关键信息:https://blog.csdn.net/u011138533/article/details/53941123
jenkins默认会在build结束后kill掉所有的衍生进程
原来如此!!
解决
在execute shell输入框中加入build_id=dontkillme
完整如下:
上一篇: CSS引入方式