java.lang.UnsupportedClassVersionError:org / sonar / batch / bootstrapper / EnvironmentInformation:不支持的major.minor版本52.0

时间:2016-06-07 17:54:31

标签: sonarqube

环境详情:

  • SonarQube 5.6
  • Apache Maven 3.3.9
  • Java版本:1.7.0_09

我将SonarQube插件与pom.xml中的java maven项目集成在一起

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

执行目标时:mvn sonar:sonar -Dsonar.host.url=<url>

获得例外:

  

[错误]无法在项目示例-java-maven上执行目标org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar(default-cli):         执行default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:声纳失败:         执行org.sonarsource.scanner.maven时遇到API不兼容:sonar-maven-plugin:3.0.2:声纳:         java.lang.UnsupportedClassVersionError:org / sonar / batch / bootstrapper / EnvironmentInformation:         不支持的major.minor版本52.0       [错误] ----------------------------------------------- ------       [错误] realm = plugin&gt; org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2

4 个答案:

答案 0 :(得分:25)

SonarQube 5.6至少需要Java 8(参见requirements)。请注意,这不仅仅是服务器端的要求,在运行分析的客户端也需要它。

与评论中提到的agabrys一样,Unsupported major.minor是典型的Java错误(请参阅this thread)。

答案 1 :(得分:2)

我自己也遇到了这个问题。我的解决方案,因为我的代码和平台正在开发中,目前只使用Java 7,不能使用Java 8,我决定使用以下代码启动之前的发行版/标记(5.5):

请参阅此处的标记: Tags for sonarqube at hub.docker.com

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:5.5

答案 2 :(得分:1)

您至少需要JDK 1.8。在How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

了解有关major.minor版本的详情

答案 3 :(得分:0)

进一步扩展agabrys和Nicolas B的答案:

您需要访问oracle的网站并下载版本为8的jdk。

配置jenkins'config.xml,通常位于/var/lib/jenkins并添加jdk:

<jdk>
  <name>jdk1.8</name>
  <home>/usr/java/jdk1.8.0_144</home>
  <properties/>
</jdk>

在该部分。或者你可以在管理jenkins的jenkins网站上添加它 - &gt;全局工具配置。