java.lang.UnsupportedClassVersionError: org/sonar/batch/boot



环境详细信息:

  • 声纳Qube 5.6
  • Apache Maven 3.3.9
  • Java 版本:1.7.0_09

我将SonarQube插件与java maven项目集成在一起,就像在pom中一样.xml

<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>

获取异常:

[错误] 无法在项目 example-java-maven 上执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar (default-cli): Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar failed: 执行 org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar 时遇到 API 不兼容: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation: 不支持的主要版本52.0 [错误] ----------------------------------------------------- [错误] realm = plugin>org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2

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

就像他评论中提到的agabrys一样,Unsupported major.minor是一个经典的Java错误(请参阅此线程)。

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

请参阅此处的标签:hub.docker.com 的声纳奎贝标签

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

你至少需要JDK 1.8。阅读有关major.minor版本的更多信息:如何修复java.lang.UnsupportedClassVersionError:不支持的主要版本。

最新更新