我的 Jenkins 有问题 – 执行 SonarQube 扫描仪构建选项。
我们的环境详情如下:
- Jenkins controller Server OS: Ubuntu-12.04 LTS-64 Bit.
- controller Server Jenkins Version: 2.46.2
- SonarQube Scanner Plugin for Jenkins -Version - 2.6.1
- Build Type: controller and agent based.
- Agent Machine: Ubuntu-14.04-LTS (64-Bit)
- SonarQube Server Version - 5.1 (64-Bit)
- Sonar-runner version 2.4
- Agent Machine Java Version – 1.8
问题描述:-我已经在Jenkins控制器服务器本身的“分析属性”类别下定义了
sonar.project.properties
信息,当我尝试通过它执行相同的操作时,它失败并出现以下错误。java.lang.UnsupportedClassVersionError:
hudson/plugins/sonar/SonarRunnerInstallation$1 : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
Caused: java.lang.ClassFormatError: Failed to load hudson.plugins.sonar.SonarRunnerInstallation$1
问题是因为Java版本不匹配。从维基百科 Java 类参考中您可以找到所有代码:J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49
导致此错误的原因是您在运行时使用的 JDK(可能是 7)低于用于编译该版本 Jenkins 的 8 版本