jenkins 多版本 jdk


最近又開始使用jenkins了,遇到一個問題,開發本地使用的jdk是1.7,而我們jenkins由於需要對docker的插件的支持必須使用1.8。

這樣就導致了有的開發的代碼在jenkins去代碼庫checkout代碼的時候,有的代碼能被jenkins打包,但是有的代碼拉取下來登錄到jenkins宿主機

能夠使用mvn install打包,但是不能被jenkins打包,出現這個問題主要是mvn使用的是系統的JAVA_HOME變量,如果降低java版本會導致jenkins無法使用

而mvn是不會受到影響,所以要解決這個jdk版本共存問題

過程如下: 

1、官網現在一個免安裝版的jdk1.8,解壓到任何目錄,我這里是解壓到/usr/java/

[root@localhost java]# ll
total 8
lrwxrwxrwx. 1 root root 16 Mar 21 09:55 default -> /usr/java/latest
drwxr-xr-x. 8 root root 4096 Mar 21 09:55 jdk1.7.0_55
drwxr-xr-x. 9 root root 4096 Mar 21 09:44 jdk1.8.0_171
lrwxrwxrwx. 1 root root 21 Mar 21 09:55 latest -> /usr/java/jdk1.7.0_55


在profile最后面添加如下:
[root@localhost java]# cat /etc/profile JAVA_HOME=/usr/java/default CLASSPATH=$JAVA_HOME/lib PATH=$PATH:$JAVA_HOME/bin export PATH CLASSPATH JAVA_HOME
重新打開終端可以查看maven版本
主要是這個mvn對JAVA_HOME有要求,因為這個變量寫入了mvn可執行文件中

[root@echqdslavejenkins_ops opt]# /usr/local/maven/bin/mvn --version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /usr/local/maven
Java version: 1.7.0_55, vendor: Oracle Corporation
Java home: /usr/java/jdk1.7.0_55/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

 

這里我使用的jenkins為rpm包。

wget https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.150.3-1.1.noarch.rpm

  [root@localhost opt]# yum localinstall jenkins-2.150.3-1.1.noarch.rpm

[root@echqdslavejenkins_ops opt]# vim /etc/init.d/jenkins
candidates="
/usr/java/jdk1.8.0_171/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
"

啟動jenkins就行了

/etc/init.d/jenkins start

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM