最近又开始使用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./bin/java
/usr/lib/jvm/jre-1.8./bin/java
/usr/lib/jvm/java-1.7./bin/java
/usr/lib/jvm/jre-1.7./bin/java
/usr/bin/java
"

启动jenkins就行了

/etc/init.d/jenkins start

jenkins 多版本 jdk的更多相关文章

  1. 【转】ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法

    一.安装java jdk1.8 1.添加软件源 sudo add-apt-repository ppa:webupd8team/java 2.更新软件源 sudo apt-get update 3.安 ...

  2. window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法

    window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装 ...

  3. tomcat升级,tomcat窗体改名,一台电脑安装多版本JDK

    1 tomcat改名:在bin目录下找到次文件(如图),按图上指示修改(比如我窗体是主数据) 修改后: 2 一台电脑安装多个版本的JDK 为什么我们要安装多个版本JDK?--我是因为tomcat修复漏 ...

  4. Linux 安装多个版本JDK并设置默认版本

    1 官网下载JDK版本 jdk-8u181-linux-x64.tar.gz 2 利用ssh工具上传安装包到Linux系统 传至:/usr/local 3 Linux用户安装的程序一般放在 /usr/ ...

  5. mac 苹果多版本jdk自由切换

    场景 手头上的工具有时候依赖低版本jdk,有时候需要高版本jdk, 如何在不同版本jdk之间来回自由的切换? 安装 首选需要去官网下载dmg安装包,地址:https://www.oracle.com/ ...

  6. 官网下载旧版本jdk,老版本jdk,jdk1.7,jdk1.8

    1.进入中文oracle官网(不是国内官网下载速度超级慢): http://www.oracle.com/technetwork/cn/indexes/downloads/index.html 2.进 ...

  7. 解决eclipse高版本JDK编译的项目到低版本JDK服务器上不能运行的问题

    错误提示信息:Unsupported major.minor version 52.0,意思是说,当前jdk的版本不支持更高版本jdk编译出来的class文件. 我的编译环境,eclipse使用的是j ...

  8. 【Devops】【docker】【CI/CD】Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK until the license is accepted

    Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK  until the  license is accepted 解决方法: ...

  9. 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0的解决方案

    从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0 java.lang.UnsupportedClassVersionError: PR/Sor ...

随机推荐

  1. linux kernel mini2440 start.S head-common.S 部分注释

    内核版本:2.6.32.2(mini2440光盘源码) github地址:https://github.com/guanglun/mini2440_uboot_linux (for_len分支 htt ...

  2. 【git】之使用shell脚本提交代码

    为减少提交步骤,防止提交错误,使用Shell脚本进行git提交不失一件好事 #!/bin/sh # @author Hubal # @Email Hubal@123.com # @createBy - ...

  3. 简单快速的Android打渠道包的方法

         APK其实就是ZIP的格式,所以,解压apk后,会看到里面有个META-INF目录.   思路:由于META-INF目录并不会影响到APK的签名和运行,所以我们可以在META-INF目录里添 ...

  4. 解决spring-boot配置文件使用加密方式保存敏感数据启动报错No decryption for FailsafeTextEncryptor. Did you configure the keystore correctly

    spring-boot配置文件使用加密方式保存敏感数据 application.yml spring: datasource: username: dbuser password: '{cipher} ...

  5. excle删除重复项的行,自定义删除第几个

    在B1输入 =COUNTIF(A$1:A1,A1) 下拉,会有数字1.2.1.2 第二步,选中B列升序排序,排序后,将B列为1的整行删除即可. 再补充下,这样是以姓名为条件来筛选,不会影响你的数据.你 ...

  6. iOS设置截图背景图片透明

    /** 设置图片背景为透明 */- (UIImage *)imageToTransparent { // 分配内存 const int imageWidth = self.size.width; co ...

  7. 图片转成base64位 页面中图片展示

    <img src="data:image/gif;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABG ...

  8. Linq to SQL -- Group By、Having和Exists、In、Any、All、Contains

    Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...

  9. 使用JavaMail创建邮件和发送邮件

    参考https://www.cnblogs.com/xdp-gacl/p/4216311.html,写的真好,知识在于分享,备份留着看 一.RFC882文档简单说明 RFC882文档规定了如何编写一封 ...

  10. Java Base64位加密和解密(包括其他加密参考)

    链接https://blog.csdn.net/longguangfu8/article/details/78948213 常用加密解密算法[RSA.AES.DES.MD5]介绍和使用 https:/ ...