最近又开始使用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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐