我将应用程序迁移到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>