java - SonarQube FindBugs 分析器(使用 SpotBugs 3.1.0-RC6)不支持 JDK 11
问题描述
我将我的应用程序迁移到 OpenJDK11 并且 Jenkins 构建失败,因为不再支持 Findbug。插件:
- sonar-maven-plugin -在 java 11 env 中内部调用 Findbug 并且它破坏了 Jenkins 构建
如何迁移此插件以使用最新的 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)
已安装的插件(相关的):
- FindbugsExternal Analyzers分析 Java 代码SpotBugs 3.1.0-RC6。3.6.0
- 适用于 Java 5.13.1 的SonarJavaLanguages 代码分析器(内部版本 18282)
- 适用于 XML 2.0.1 的SonarXML 代码分析器(构建 2020)
- CheckstyleExternal Analyzers使用 Checkstyle 4.23 分析 Java 代码
解决方案
FindbugsExternal Analyzers 使用 SpotBugs 3.1.0-RC6 分析 Java 代码。3.6.0
我找不到提供 SpotBugs 3.1.0-RC6的SonarQube Findbugs插件版本。它应该介于:
在我看来,您使用的是插件的自定义版本。
承诺支持 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 。
推荐阅读
- c# - “ResolvePackageAssets”和“ResolvePackageDependencies”任务都意外失败
- javascript - 如何将 Jquery 输出打印到保存表单提交的字段?
- r - R中的因素(数据结构)
- matlab - Matlab - 定义数学函数
- android - 开始双簧管录音后主 UI 线程被阻塞
- node.js - Discord js keyv 抛出 ECONNREFUSED
- flutter - 如何在 Dart 中制作 Future.wait 的 Stream 版本?
- php - 条带支付返回无效整数错误消息
- r - 跨列的汇总统计信息,其中列名表示组
- html - 我的 css 弄乱了滚动正常工作