在我们在Windows服务器和JRE 7上运行的Jenkins中,我们安装了最新版本的SonarQube插件:2.5。
提示:我们需要JRE 7来运行Jenkins,因为另一个插件非常陈旧且不能与Java 8一起使用。
然后,当Jenkins启动时,记录了以下警告:
WARNING: Loading plugin Jenkins SonarQube Plugin v2.5 (sonar) failed perhaps due to plugin dependency issues
java.io.IOException: Unable to load hudson.plugins.sonar.SonarPlugin from sonar
at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:514)
at hudson.PluginManager$2$1$1.run(PluginManager.java:517)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
at jenkins.model.Jenkins$7.runTask(Jenkins.java:1026)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsupportedClassVersionError: hudson/plugins/sonar/SonarPlugin : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
Jenkins启动后,SonarQube插件在'插件管理器'/'已安装'中不可见。
我们将插件降级到版本2.4.4后,一切正常。
这是否意味着SonarQube插件v2.5要求Jenkins在JRE 8上运行?
或者可以用另一种方式解决这个问题吗?
更新:我试图通过将JAVA_HOME设置为Java 8文件夹来解决问题。不幸的是,它没有解决问题。
答案 0 :(得分:2)
将Jenkins.xml和java可执行文件更新到\ Java \ jre1.8.0_112 \ bin \ java修复了我的问题。我正在使用Sonar Plugin 2.5运行SonarQube 6.1,Jenkins 2.27
答案 1 :(得分:0)
事实上,Jenkins的SonarQube扫描仪从版本1.5开始需要JDK 8。
我不确定Jenkins如何选择它将运行的JDK(可以依赖JAVA_HOME
或使用PATH中的那个)但至少在我的Linux机器上我可以强制它使用特定的JDK使用JENKINS_JAVA_CMD
进行安装(可以在/etc/sysconfig/jenkins
中设置,也可以在环境变量中设置)。