我们的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服务器仍在运行Java 6,但我们没有做任何更改。
发生了什么,我们如何解决?
该詹金斯-声纳插件使用声纳Maven的插件来运行声纳分析。
Sonar-maven-plugin已于2015-10-19更新至2.7,新版本与Java 6不兼容。
Jenkins-sonar-plugin默认使用最新版本的sonar-maven-plugin,但是您可以覆盖它。
因此,要解决该错误,请打开“管理Jenkins” /“配置系统”,找到“ Sonar”部分,单击“高级”,然后在“ sonar-maven- plugin版本”中输入2.6。这迫使jenkins-sonar-plugin使用与Java 6兼容的早期版本的sonar-maven-plugin。
另外,如果您只想为一个特定的Jenkins作业设置2.6,则可以强制Maven使用target org.codehaus.mojo:sonar- maven-plugin:2.6:sonar而不是standard 来使用2.6版本sonar:sonar。
org.codehaus.mojo:sonar- maven-plugin:2.6:sonar
sonar:sonar
另外:开始计划将构建服务器升级到Java 7或Java 8。