org/sonar/batch/bootstrapper/EnvironmentInformation 由较新版本(55)编译,此版本的 Java 最多可识别 52 个类文件版本

问题描述 投票:0回答:3

我已经在本地安装了声纳,以便在我的java项目代码上运行它。我的这段代码使用的是java 8。我的环境变量也设置为java 8,但我已经在我的机器上安装了Java 11,并在我的机器中设置了一个指向java 11的环境变量SONAR_JAVA_PATH。这是我的环境变量。

export SONAR_HOME=/opt/homebrew/Cellar/sonar-scanner/4.7.0.2747/libexec
export SONAR=$SONAR_HOME/bin
export PATH=$SONAR:$PATH

export SONAR_JAVA_PATH=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java
export PATH=$SONAR_JAVA_PATH:$PATH

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export PATH=${JAVA_HOME}/bin:${PATH}
export PATH

当我在根目录中运行以下命令时

   mvn clean verify sonar:sonar \
  -Dsonar.projectKey=tirebattery-orderprocessing-svcs \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=sqp_17296fe6fac85ebd5f0c0f0490b78216b5ea7140

它抛出以下错误

执行goal的default-cli org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar 失败:执行时遇到 API 不兼容问题 org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:声纳: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation 已编译 通过更新版本的 Java 运行时(类文件版本 55.0),此版本的 Java 运行时仅识别 52.0 以下的类文件版本

我对这个错误感到非常困惑。在我的 IntelliJ 中,如何在 Java 8 中构建代码并在 java 11 上运行声纳?在之前的几个答案中,我红色编辑wrapper.conf文件,但在MAC中,通过Brew安装声纳后没有创建这样的文件。 任何人都可以用简单的语言向我解释为什么会出现此问题,根本原因是什么以及我必须对 POM 进行哪些更改才能解决此问题。这是我的 POM.xml 文件

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

<groupId>com.sams.clubops.orderprocessing</groupId>
<artifactId>tbcorderprocessing</artifactId>
<version>1.8.3</version>
<packaging>jar</packaging>

<name>tbcorderprocessing</name>
<description>Purchase order processing services</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.2</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <azure.version>2.0.5</azure.version>
    <java.version>1.8</java.version>
    <camel.version>2.20.1</camel.version>
    <spring.boot.version>2.7.2</spring.boot.version>
    <swagger2.version>2.9.2</swagger2.version>
    <tbc-common.version>1.8.4-SNAPSHOT</tbc-common.version>
</properties>
<distributionManagement>
    <repository>
        <id>pangaea_releases</id>
        <name>xyz Releases</name>
        <url>http://gec-maven-nexus.xyz.com/nexus/content/repositories/pangaea_releases</url>
    </repository>
    <snapshotRepository>
        <id>pangaea_snapshots</id>
        <name>xyz Snapshots</name>
        <url>http://gec-maven-nexus.xyz.com/nexus/content/repositories/pangaea_snapshots</url>
    </snapshotRepository>
</distributionManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
    </dependency>

    <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>${spring.boot.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-spring-data-cosmos</artifactId>
        <version>3.25.0</version>
    </dependency>

    <!-- Added for SQL Server Connection 12/07 -->
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
        <version>1.2.4.RELEASE</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-aop -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>

  <dependency>
        <groupId>com.sams.event.horizon</groupId>
        <artifactId>evclient</artifactId>
        <version>0.0.60</version>
      <exclusions>
          <exclusion>
              <groupId>com.google.code.gson</groupId>
              <artifactId>gson</artifactId>
          </exclusion>
      </exclusions>
   </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.197</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger2.version}</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger2.version}</version>
        <scope>compile</scope>
    </dependency>
    <!--TBC Commons dependency-->
    <dependency>

        <groupId>com.sams.clubops.tbc</groupId>
        <artifactId>tbc-common</artifactId>
        <version>${tbc-common.version}</version>
    </dependency>

    <!--        EVENT HUB EVENT PROCESSOR-->
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-eventhubs</artifactId>
        <version>3.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-eventhubs-eph</artifactId>
        <version>3.0.2</version>
        <exclusions>
            <exclusion>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-servicebus</artifactId>
        <version>1.2.11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.directory.studio</groupId>
        <artifactId>org.apache.commons.collections</artifactId>
        <version>3.2.1</version>
    </dependency>

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>applicationinsights-logging-logback</artifactId>
        <version>2.5.1</version>
    </dependency>

    <dependency>
        <groupId>com.sams.mth</groupId>
        <artifactId>common</artifactId>
        <version>3.0.2</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-keyvault-secrets-spring-boot-starter</artifactId>
        <version>2.1.7</version>
    </dependency>

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-inline</artifactId>
        <version>3.8.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>build-info</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources/docker</directory>
                                <includes>
                                    <include>Dockerfile</include>
                                    <include>sshd_config</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>src/main/resources/docker</directory>
                                <includes>
                                    <include>startup.sh</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>src/main/resources/docker</directory>
                                <includes>
                                    <include>proxy-intranet-ref-app.conf</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>src/main/resources/keystore</directory>
                                <includes>
                                    <include>stage-extes-replenishment.crt</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>src/main/resources/docker</directory>
                                <includes>
                                    <include>stage-event-horizon-eus.cld.samsclub.com.cer</include>
                                    <include>stage-event-horizon-wus.cld.samsclub.com.cer</include>
                                    <include>stage-event-horizon-station.cld.samsclub.com.cer</include>
                                    <include>event-horizon-eus.cld.samsclub.com.cer</include>
                                    <include>event-horizon-wus.cld.samsclub.com.cer</include>
                                    <include>event-horizon-station.cld.samsclub.com.cer</include>
                                    <include>stage-extes-replenishment.wal-mart.com.cer</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.coveo</groupId>
            <artifactId>fmt-maven-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <displayLimit>10</displayLimit>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.7.201606060606</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-check</id>
                    <goals>
                        <goal>check</goal>
                    </goals>
                    <configuration>
                        <excludes>
                            <exclude>com/sams/clubops/orderprocessing/object/**/*</exclude>
                            <exclude>com/sams/clubops/orderprocessing/repository/document/*</exclude>
                            <exclude>**/*EventConsumerManager.class</exclude>
                            <exclude>**/*EventProcessHostObjFactory.class</exclude>
                            <exclude>**/*DotComOrdersPoLogRepo.class</exclude>
                            <exclude>**/*OrderProcessingCosmosConfig.class</exclude>
                        </excludes>
                        <rules>
                            <rule>
                                <element>BUNDLE</element>
                                <limits>
                                    <limit>
                                        <counter>LINE</counter>
                                        <value>COVEREDRATIO</value>
                                        <!--CHange it back to 80-->
                                        <minimum>0.83</minimum>
                                    </limit>
                                </limits>
                            </rule>
                        </rules>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <configuration>
                <testFailureIgnore>false</testFailureIgnore>
            </configuration>
        </plugin>
    </plugins>
</build>
java maven sonarqube sonarqube-scan
3个回答
4
投票

Java 用于运行 SonarScanner - SonarQube 8.9 中运行 Java 8,SonarQube 9.0 及更高版本中运行 Java 11

将 JDK 升级到 JDK11 或将 SonarQube 降级到 8.9


0
投票

SonarQube 9.8 已停止支持 Java 8 版本的 Scanner 工具 3.9.1。所以需要使用SonarQube 8.9或以下版本进行分析。或者您可以参考以下内容,但可能仍然无法使用新的扫描仪工具版本:

mvn sonar:sonar 
-Dsonar.login=xxxxxxxxxxxxx
-Dsonar.host.url=http://localhost:9001/sonarqube 1
-Dsonar.java.jdkHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home

参考来源:https://community.sonarsource.com/t/java-versions-in-sonarqube/67551


0
投票

因此,就我而言,我刚刚另外安装了 java 11 并将 JAVA_HOME 设置为 java 11 只是为了声纳步骤。

JAVA_HOME=/etc/alternatives/java_sdk_11/ && export JAVA_HOME && mvn -X sonar:sonar -DskipTests=true
© www.soinside.com 2019 - 2024. All rights reserved.