如何禁用Sonar Bitbucket Cloud插件的SonarScanner post作业动作



SonarScanner分析完成后,有一些作业后运行,如下所示:

[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]

这里列出了一个解决方案。但这是不可行的,我想完全跳过工作后。这是目前在我的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插件的Bitbucket Cloud插件。SonarScanner正在失败,因为它是由插件强制执行的。

我检查了你链接的问题。stacktrace中最重要的部分:

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和ReviewCommentsHandler),我没有看到任何方法来禁用这个处理器。

插件的最后一个版本是在2017年12月18日。我也没有看到任何积极的发展(最后一次提交是两年前- 2019年5月31日)。我发现了一个增加了对SonarQube 6.5+支持的提交,但它还没有发布(2019年1月26日)。最后是README。Md文件未发布的更改通知:

插件只支持SonarQube版本<7.7 due do所需的预览模式

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

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

最新更新