Jenkins Sonar 插件突然停止工作

Jenkins Sonar plugin suddenly stops working

我们的 Jenkins 构建一夜之间开始失败并出现错误:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7:sonar (default-cli) on project <project>: 
Execution default-cli of goal org.codehaus.mojo:sonar-maven-plugin:2.7:sonar failed: 
Unable to load the mojo 'sonar' in the plugin 'org.codehaus.mojo:sonar-maven-plugin:2.7' due to an API incompatibility:
org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/codehaus/mojo/sonar/SonarMojo :
Unsupported major.minor version 51.0

Jenkins服务器还是运行Java6,但是我们什么都没改。

发生了什么事,我们该如何解决?

jenkins-sonar-plugin uses sonar-maven-plugin到运行声纳分析。

Sonar-maven-plugin 已于 2015-10-19 更新至 2.7,新版本不兼容 Java 6.

Jenkins-sonar-plugin 默认使用最新版本的 sonar-maven-plugin,但您可以覆盖它。

所以要修复这个错误,打开"Manage Jenkins"/"Configure System",找到Sonar部分,点击高级,在"Version of sonar-maven-plugin"中输入2.6。这会强制 jenkins-sonar-plugin 使用以前版本的 sonar-maven-plugin,它适用于 Java 6.

或者,如果您只想为一个特定的 Jenkins 作业设置 2.6,那么您可以强制 Maven 使用目标 org.codehaus.mojo:sonar-maven-plugin:2.6:sonar 而不是标准 sonar:sonar.

使用 2.6 版本

另外:开始计划将构建服务器升级到 Java 7 或 Java 8。