谈到声纳关闭特定代码谈到声纳关闭特定代码(Turning Sonar off for certain

2019-05-17 13:56发布

是否有可能关闭声纳( www.sonarsource.org )三围为特定的代码块,哪一个不希望被测量的?

一个例子是“保留堆栈跟踪”的警告,其FindBugs的输出。 当离开服务器,我很可能只想将消息传递回客户端,不包括我刚好赶上了实际的异常,如果该异常是未知的客户端(因为客户端不具备JAR在该例外载例如)。

Answer 1:

这是一个常见问题 。 你可以把//NOSONAR就行触发警报。 我更喜欢使用FindBugs的机制,虽然,这包括在加入@SuppressFBWarnings注释:

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


Answer 2:

您可以注解一个类或SuppressWarnings的方法

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

鱿鱼:S00112在这种情况下是一种声纳问题编号。 你可以找到在声纳UI这个ID。 转至问题追溯。 找到你想要以抑制警告的问题。 在代码中的红色盒子的问题是存在于某一问题的定义规则链接。 一旦你点击,你会看到ID在页面的顶部。



Answer 3:

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

为了抑制多次警告,你可以做这样的@SuppressWarnings({"squid:S2078", "squid:S2076"})

也有//NOSONAR评论,告诉SonarQube忽略所有的错误特定行。

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

为什么我建议的具体警告的抑制的原因是,它是一个更好的做法来阻止一个特定的问题,而不是使用//NOSONAR和风险声纳问题偶然在代码中爬行。

你可以在阅读更多关于这个FAQ

注:GABOR Bakos的指向旧的常见问题,现在404。 这是我第一个谷歌的结果,所以我想帮助其他人可能有同样的问题

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

如果你想知道如何找到鱿鱼数量。 只要点击声纳信息(例如, Remove this method to simply inherit it. )和超声波问题将扩大。

在左下角就会有鱿鱼号码(例如, squid:S1185可维护性>可理解)

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



Answer 4:

我无法找到在声纳5.6鱿鱼号码,该注释也可以工作:

@SuppressWarnings({"pmd:AvoidCatchingGenericException", "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck"})


Answer 5:

用你得到警告线// NOSONAR如果它是你不能帮助你的代码。 有用!



文章来源: Turning Sonar off for certain code