【问题标题】:java.lang.UnsupportedClassVersionError org/sonar/batch/bootstrapper/EnvironmentInformationjava.lang.UnsupportedClassVersionError org/sonar/batch/bootstrapper/EnvironmentInformation
【发布时间】:2021-10-04 23:30:57
【问题描述】:

sonarQube9.0.1 CE(Java 11)+ pgsql(docker install)。我的项目是Java 8 当我执行 mvn sonar:sonar,我的项目失败了

[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.9.0.2155
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/D:/project/repository/org/sonarsource/scanner/maven/sonar-maven-plugin/3.9.0.2155/sonar-maven-plugin-3.9.0.2155.jar
[ERROR] urls[1] = file:/D:/project/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar

顺便说一句,sonarqube9 需要 java 11 意味着我的项目也需要 java 11?

【问题讨论】:

  • 您可以使用 Java 11 编译器生成 Java 8 代码。可以在 maven-compiler-plugin 上设置配置。从 Java 9 开始,“发布”配置选项很有用:maven.apache.org/plugins/maven-compiler-plugin/…
  • 你不应该使用 org.codehaus.mojo:sonar-maven-plugin。您必须使用正常工作的org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.0.2155..

标签: java maven sonarqube


【解决方案1】:

您可以使用 Java 11 编译器生成 Java 8 代码。配置可以在 maven-compiler-plugin 上设置,你可以看下面的例子:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <release>${jdk.console.version}</release>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

如果您希望编译在 JRE 8 中执行,那么 ${jdk.console.version} 将为 1.8

【讨论】:

    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2016-06-05
    • 2022-12-01
    • 1970-01-01
    相关资源
    最近更新 更多