------------------------------------------------------
如需轉載,請注明出處。
文章鏈接:https://www.cnblogs.com/dzblog/p/9946486.html
------------------------------------------------------
更新
2018-11-28:文章寫於11月12日,今日查詢官網發現,在Jenkins最新的weekly版本上已經支持了JDK11,個人未測試,若有需要請更新2.152以后的版本。
changelog信息:https://jenkins.io/changelog/
環境
Jenkins: 2.7
Slave: Mac OS
場景
發現Jenkin構建能夠成功,不過在最后一步總會提示java.io.IOException: Remote call on xxxx failed
原因分析
遇到這種問題毫無頭緒,不過猜測可能是master和slave機器連接這里的問題,查詢官網發現https://issues.jenkins-ci.org/browse/JENKINS-46523,應該是JDK版本的原因導致。
查詢構建機的java版本,發現是JDK11。
➜ Home java --version java 11.0.1 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
另外發現官網有個Ticket:JENKINS-40689 說目前不支持JDK9以上版本,截圖如下:
所以猜測替換JDK版本到JDK8就能解決此問題。
着手解決
查看機器安裝的JDK版本
發現有JDK11和JDK8兩個版本,所以只需要切換到JDK8就可以了
➜ Home pkgutil --pkgs | grep jdk com.oracle.jdk-11.0.1 com.oracle.jdk8u101
切換JDK版本
切換到Jenkins支持的JDK8。為了方便以后使用,改成靈活修改JDK的方式,編輯~/.bash_profile
# 設置JDK8 export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8` # 設置JDK11 export JAVA_11_HOME=`/usr/libexec/java_home -v 11.0` # 設置默認JDK為8,重啟電腦會自動選擇 export JAVA_HOME=$JAVA_8_HOME #能夠方便的切換JDK alias jdk8="export JAVA_HOME=$JAVA_8_HOME" alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
測試
# 輸入jdk11 ➜ Home jdk11 # 查看java版本 ➜ Home java -version java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) # 輸入jdk8 ➜ Home jdk8 # 查看java版本 ➜ Home java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
再次啟動Jenkins
nohup java -jar slave.jar -jnlpUrl http://jenkins-url.com/computer/slave-macpro/slave-agent.jnlp -secret 63f9d5f0f1b5df887cbe72225d912a7ba253ef727c85aa143e3200e2ea54f278 >jenkinsslave.log &
再次構建,成功!
cheers~~