如何为 Sonar Bitbucket Cloud 插件禁用 SonarScanner post 作业操作

How to disable SonarScanner post job action for the Sonar Bitbucket Cloud plugin

完成 SonarScanner 分析后,有一些 post-job 运行 如下:

[DEBUG] 14:56:53.076 Post-jobs : Sonar Plug-in for Bitbucket Cloud
[INFO] 14:56:53.076 Executing post-job 'Sonar Plug-in for Bitbucket Cloud'

当我在 PR 中有二进制文件并显示以下消息时,这会失败:

diff --git a/docs/folder1/images/image.png b/docs/folder1/images/image.png
new file mode 100644
index 0000000..c73bf4c
Binary files /dev/null and b/docs/folder1/images/image.png differ
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project demo-proj: [sonar4bitbucket] Failed to parse diff: string matching regex `\z' expected but `B' found -> [Help 1]

列出了其中一个解决方案 here。但这是不可行的,我想完全跳过 post-job。这是目前我的 pom.xml 文件中 sonar-maven-plugin 插件的内容 -

<plugin>
  <groupId>org.sonarsource.scanner.maven</groupId>
  <artifactId>sonar-maven-plugin</artifactId>
  <version>3.7.0.1746</version>
  <executions>
    <execution>
      <phase>install</phase>
      <goals>
        <goal>sonar</goal>
      </goals>
    </execution>
  </executions>
</plugin>

如果目标 org.sonarsource.scanner.maven 导致此问题,我只想禁用它。有什么办法可以实现吗?

问题来自 Sonar Plug-in for Bitbucket Cloud 插件。 SonarScanner 失败是因为它被插件强制执行。

我检查了你链接的问题。堆栈跟踪中最重要的部分:

java.lang.RuntimeException: [sonar4bitbucket] Failed to parse diff: string matching regex \z' expected but F' found
at ch.mibex.bitbucket.sonar.diff.IssuesOnChangedLinesFilter.parseOrFail(IssuesOnChangedLinesFilter.scala:54)
at ch.mibex.bitbucket.sonar.diff.IssuesOnChangedLinesFilter.filter(IssuesOnChangedLinesFilter.scala:16)
at ch.mibex.bitbucket.sonar.review.ReviewCommentsHandler.processIssues(ReviewCommentsHandler.scala:96)
at ch.mibex.bitbucket.sonar.review.ReviewCommentsHandler.updateComments(ReviewCommentsHandler.scala:33)
at ch.mibex.bitbucket.sonar.review.SonarReviewPostJob.ch$mibex$bitbucket$sonar$review$SonarReviewPostJob$$handlePullRequest(SonarReviewPostJob.scala:45)
[...]

我检查了提到的 类 (SonarReviewPostJob and ReviewCommentsHandler),但我没有看到任何禁用此处理器的方法。

该插件的最后一次发布是在 2017 年 12 月 18 日。我也没有看到任何积极的开发(最后一次提交是 2 年前 - 2019 年 5 月 31 日)。我发现 a commit which added support for SonarQube 6.5+, but it has been not releases (26th January 2019). Finally, the README.md 文件的未发布更改通知:

The plug-in only supports SonarQube versions < 7.7 due do the required preview mode

表示不支持SonarQube 7.X LTS。 SonarSource 将在几个月内发布 8.X LTS(应该在 2021 年 2 月至 4 月之间)。

我认为解决问题的唯一方法是卸载未维护的插件。此时它在二进制文件上失败,但很快你就会开始点击 NoClassDefFoundError(例如,当你的 SonarQube 实例更新时)。