首页 > 解决方案 > SonarQube FindBugs 分析器(使用 SpotBugs 3.1.0-RC6)不支持 JDK 11

问题描述

我将我的应用程序迁移到 OpenJDK11 并且 Jenkins 构建失败,因为不再支持 Findbug。插件:

如何迁移此插件以使用最新的 Spotbug 依赖项,我仍然想保留 sonar-maven-plugin 以获取报告给 sonar。

当前 pom.xml 相关部分:

<build>
    <pluginManagement>
        <plugins>

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

已经浏览了许多文档。找不到解决方案。

SonarQube 版本: 6.7 版(内部版本 33306)

已安装的插件(相关的):

标签: javamavenjenkinssonarqubespotbugs

解决方案


FindbugsExternal Analyzers 使用 SpotBugs 3.1.0-RC6 分析 Java 代码。3.6.0

我找不到提供 SpotBugs 3.1.0-RC6的SonarQube Findbugs插件版本。它应该介于:

  • 3.7.0(发布:2018 年 3 月 15 日)提供 SpotBugs 3.1.2(见代码
  • 3.6.0(发布:2017 年 9 月 21 日)提供 SpotBugs 3.1.0-RC5(见代码

在我看来,您使用的是插件的自定义版本。

承诺支持 JDK 11 的 Findbugs 插件的第一个版本是3.10.0(取决于 SonarJava 5.10.1,其中自 SonarJava 5.8 ( SONARJAVA-2862 ) 起支持 JDK 11,请参阅代码)。

第二个问题是您尝试使用未维护(不受支持)的服务器版本:

SonarQube 版本:6.7 版(内部版本 33306)

使用最新版本的 SonarScanner:

<artifactId>sonar-maven-plugin</artifactId>
<version>3.7.0.1746</version>

SonarQube 6.7已于 2017 年 11 月 8 日发布(标签已于 2017 年 11 月 7 日创建)。它已在第一个官方 JDK 11 LTS 版本之前发布(谷歌显示为 2018 年 9 月)。

我认为唯一正确的解决方案是使用所有插件将 SonarQube 升级到至少7.9 LTS 。


推荐阅读