1. 程式人生 > >通過Jenkins自動構建dubbo服務時的問題彙總

通過Jenkins自動構建dubbo服務時的問題彙總

最近接觸新的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

完整如下: