我的maven项目对jdk1.7有严格的依赖性。 我有具有jdk 1.8的Jenkins(2.89.4)实例。 当我尝试连接到从站(在此从站配置中指定jdk 1.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
答案 0 :(得分:3)
您可以配置作业以使用特定版本的JDK,而不必重新配置代理或弄乱slave.jar
。
一种方法是使用Jenkins全局工具配置。这是使用Oracle JDK进行设置的基本演练:
JDK 1.7
)JDK 1.7
现在,当您运行作业时,它将自动下载,安装和使用7u80
JDK。
如果您已经在代理上安装了JDK(或者想使用Oracle JDK以外的其他工具):回到 Global Tool Configuration 部分,有一个 Add Installer 。强>按钮。
:
/opt/jdk1.7.0_80