当前位置: 首页 > 知识库问答 >
问题:

针对特定代码关闭声纳

严亮
2023-03-14

有没有可能关闭sonar(www.sonarsource.org)对特定代码块的测量,哪一块代码不想被测量?

Findbugs输出的“保留堆栈跟踪”警告就是一个例子。离开服务器时,如果客户机不知道异常,我可能只想将消息传递回客户机,而不包括刚刚捕获的实际异常(例如,因为客户机没有包含该异常的JAR)。

共有3个答案

何松
2023-03-14

这是常见问题解答。您可以在触发警告的行的末尾放置NOSONAR。

<代码>//NOSONAR

对于大多数语言,SonarQube支持使用通用机制:问题行末尾的NOSONAR。这将抑制现在和将来可能在网上提出的所有问题。

不过,我更喜欢使用FindBugs机制,它包括添加@SuppressFBWarnings注释:

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value = "NAME_OF_THE_FINDBUGS_RULE_TO_IGNORE",
    justification = "Why you choose to ignore it")
裴展
2023-03-14

我建议您尝试使用SuppressWarnings(“squid:S2078”)来抑制特定警告。

要抑制多个警告,您可以这样做@SuppressWarings({"squid: S2078","squid: S2076"})

还有一条注释告诉SonarQube忽略特定行的所有错误。

最后,如果您对用户界面拥有适当的权限,您可以直接从界面发出一个误报标志。

我建议抑制特定警告的原因是,更好的做法是阻止特定问题,而不是使用NOSONAR,并冒着声纳问题在代码中意外蔓延的风险。

您可以在常见问题解答中阅读有关此的更多信息

编辑:2016年6月30日SonarQube现在被称为Sonarint

如果你想知道如何找到乌贼号。只需单击Sonar消息(例如,删除此方法以简单地继承它),Sonar问题就会扩大。

左下角有squid编号(例如,squid:S1185

因此,您可以通过SuppressWarnings(“squid:S1185”)

房项禹
2023-03-14

您可以使用SubpressWarning注释类或方法

@java.lang.SuppressWarnings("squid:S00112")

鱿鱼:在这种情况下,S00112是Sonar问题ID。您可以在Sonar UI中找到此ID。转到问题钻取。找到您想要抑制警告的问题。在代码中的红色问题框中有一个规则链接,其中包含给定问题的定义。单击后,您将在页面顶部看到ID。

 类似资料:
  • 问题内容: 是否可以为特定的代码块关闭声纳(www.sonarsource.org)测量,而哪些是不想测量的? 一个示例是Findbugs输出的“保留堆栈跟踪”警告。离开服务器时,如果客户端不知道该异常,我可能只想将消息传递回客户端,而不包括我刚刚捕获的实际异常(因为该客户端没有该JAR,例如包含例外)。 问题答案: 这是一个常见问题解答。您可以在线上触发警告。我更喜欢使用FindBugs机制,该

  • 我们能比较詹金斯和声纳吗?如果是,怎么做。我想知道詹金斯和声纳的优缺点。比如为什么要使用声纳,它比詹金斯有什么优势,反之亦然?

  • 如何关闭SonarQube 4中的代码覆盖?我在单元测试中使用了JMockit,在Sonar中使用了JaCoCo代码覆盖插件。它们冲突是因为它们使用不同的JavaAgent来编辑类的字节码(如我所知)。我想关闭声纳中的代码覆盖。我可以在Jacoco的设置中排除我的项目,但这没有帮助。

  • 持续按住音量 +和音量 -键直到显示(静音)为止。 再次按下音量 +或音量 -键即可恢复原有音量。

  • 我正在编写我的系统编程课程作业(使用线程)。 我的活动类实现runnable,我还有另一个类,其中有一个执行器,它使用:

  • 问题内容: 如果我在finally块中将其关闭,为什么Jenkins的SonarQube插件会抱怨open语句? (我需要在单独的函数中验证数据库连接。) 问题答案: 我已经按照@TT的建议以这种方式重构了代码,而声纳 不再抱怨 。 没有“ try-with-resource”,代码可以按以下方式重构,但是在这种情况下,Sonar 仍然抱怨 :