SonarQube FindBugs分析器(带有SpotBugs 3.1.0-RC6)不支持JDK 11



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

  • sonar maven插件-正在内部调用java11env中的Findbug,它正在崩溃詹金斯的建筑

我如何迁移这个插件以使用最新的Spotbug依赖项,我仍然想保留sonar maven插件以将报告发送到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(

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

  • FindbugsExternalAnalysers使用SpotBugs 3.1.0-RC6分析Java代码。3.6.0
  • SonarJavaLanguages Java代码分析器5.13.1(建筑18282(
  • SonarXML代码分析器用于XML2.0.1(2020年版(
  • Checkstyle外部分析器使用Checkstyle分析Java代码4.23

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

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

  • 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,其中JDK 11自SonarJava 5.8(SonarJava-2862(以来一直受到支持,请参阅代码(。

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

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

使用最新版本的SonarScanner:

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

SonarQube 6.7已于2017年11月8日发布(标签已于2017月7日创建(。它在JDK 11 LTS首次正式发布之前就已经发布了(谷歌于2018年9月发布(。

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

尝试降级声纳插件版本。这个插件版本对我有效。

<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>

最新更新