如何在Jenkins中指定slave.jar兼容的jdk版本

dly7yett  于 12个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(197)

我的maven项目对jdk1.7有很强的依赖性。我有Jenkins(2.89.4)示例,它有jdk1.8。当我试图连接到slave(在这个slave配置中指定jdk1.7)时,启动代理失败,错误如下

Starting slave process: cd "/jenkins" && /opt/jdk1.7.0_80/bin/java  -jar slave.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
    Slave JVM has terminated. Exit code=1

字符串
如果这个从服务器安装了JDK 1.8,则启动代理成功。但是,在这种情况下,我的maven构建失败,因为我的maven项目对JDK 1.7有很强的依赖性。
我想知道是否有一种方法可以在Jenkins示例中指定与JDK 1.7兼容的slave.jar

eyh26e7m

eyh26e7m1#

您可以将作业配置为使用特定版本的JDK,而不是重新配置代理或摆弄slave.jar
一种方法是使用Jenkins全局工具配置。下面是使用Oracle JDK设置它的基本演练:
1.浏览到http://JENKINS_HOME/configureTools/(或管理Jenkins->配置全局工具
1.单击JDK安装...按钮
1.点击【添加JDK】
1.输入名称(类似于JDK 1.7
1.从列表中选择适当的JDK版本(如
Java SE Development Kit 7 u80

  • 勾选复选框我同意Java SE开发工具包许可协议
  • 此框必须被选中以自动执行下载
  • 点击页面底部的【保存】按钮
  • 浏览到配置您的Maven项目
  • 在常规配置部分中查找JDK配置文件(将在源代码管理之前不久)
  • 从目录中选择新配置的JDK 1.7
    *保存

现在,当您运行作业时,它将自动下载、安装和使用7u80 JDK。
如果您已经在代理上安装了JDK(或希望使用Oracle JDK以外的其他工具):在全局工具配置部分中,有一个添加工具按钮。

标签 不填 *
*命令:

  • 是的,这只是一个no-op冒号。来自帮助:“该命令将始终运行,所以如果工具已经安装,它应该是一个快速的no-op。”
    *工具首页/opt/jdk1.7.0_80

相关问题