问题

是否可以关闭特定代码块的声纳(www.sonarsource.org)测量值,哪一个不想测量?

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


#1 热门回答(140 赞)

你可以使用SuppressWarnings注释类或方法

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

鱿鱼:S00112在这种情况下是一个声纳问题ID。你可以在Sonar UI中找到此ID。转到问题深入分析。找到你要禁止警告的问题。在代码中的红色问题框中,有一个规则链接,其中包含给定问题的定义。点击后,你将在页面顶部看到ID。


#2 热门回答(51 赞)

这是aFAQ。你可以在触发警告的行上输入//NOSONAR。我更喜欢使用FindBugs机制,它包括添加@SuppressFBWarnings注释:

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value = "NAME_OF_THE_FINDBUGS_RULE_TO_IGNORE",
    justification = "Why you choose to ignore it")

#3 热门回答(49 赞)

我建议你尝试使用@SuppressWarnings("squid:S2078")来抑制特定警告。

为了抑制多个警告,你可以这样做,如818865621

还有一个//NOSONAR评论告诉SonarQube忽略特定行的所有错误。

最后,如果你拥有用户界面的适当权限,则可以直接从界面发出标记为误报。

我建议抑制特定警告的原因是,阻止特定问题而不是使用//NOSONAR是一种更好的做法,并且可能会在代码中意外地发生声纳问题。

你可以在FAQ中阅读更多相关信息

注意:GáborBakos指向现在404的旧版常见问题解答。这是我的第一个谷歌搜索结果,所以我想帮助其他可能有同样问题的人

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

如果你想知道如何找到鱿鱼数量。只需点击Sonar消息(ex.Remove this method to simply inherit it.),Sonar问题就会扩大。

在左下方,它将有鱿鱼编号(ex.squid:S1185Maintainability> Understandingability)

那么你可以通过@SuppressWarnings("squid:S1185")来抑制它


原文链接