踩了N多坑基协,遇到此情況的按照以下幾點(diǎn)來排查吧
1歌亲、在shell腳本加上一行BUILD_ID=dontKillMe
image.png
后邊的dontKillMe,是可以隨便填的澜驮,目的是告訴jenkins執(zhí)行完后陷揪,不要把該子進(jìn)程殺掉。
2杂穷、所有文件都用全路徑
image.png
如圖悍缠,指定配置文件、要運(yùn)行的jar包耐量,都拼接上了完整的路徑
3飞蚓、java命令,有的服務(wù)器直接java -jar就可以廊蜒,但有的需要用java命令的全路徑
一開始猜測(cè)可能是環(huán)境變量配置問題趴拧,但是此臺(tái)機(jī)器環(huán)境變量已檢查,沒問題山叮,在哪個(gè)地方都能訪問到j(luò)ava命令著榴,但是不知道為啥jenkins調(diào)用時(shí)日志就輸出找不到j(luò)ava。
用which java查全路徑
4屁倔、之前還犯了一個(gè)小錯(cuò)脑又,用了-Dxxxx來指定一些參數(shù), -D的是給jvm調(diào)用的锐借,要放在 -jar 之前才生效问麸。
在手動(dòng)執(zhí)行腳本時(shí),放后邊試了也可以钞翔,但是jenkins調(diào)用時(shí)严卖,就不生效了。
這樣導(dǎo)致jar包雖然起來了布轿,但不是按照指定的配置文件來的妄田,連端口也是默認(rèn)的8080,而不是配置文件里配置的驮捍。