关闭某些代码关闭Sonar

Ant*_*era 130 java findbugs jenkins sonarqube

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

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

mae*_*tr0 199

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

@java.lang.SuppressWarnings("squid:S00112")
Run Code Online (Sandbox Code Playgroud)

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

  • 问题是Eclipse显示警告`Unsupported @SuppressWarnings("squid:S00112")`.您可以将Eclipse配置为忽略此项,但不会检测到诸如"@SuppressWarnings("uncheckedd")中的拼写错误. (18认同)
  • 我可以确认这也适用于特定的FindBugs规则ID,例如`@SuppressWarnings("findbugs:UI_INHERITANCE_UNSAFE_GETRESOURCE")`. (8认同)

wir*_*iko 73

我建议您尝试使用禁止特定警告@SuppressWarnings("squid:S2078").

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

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

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

我建议抑制特定警告的原因是,阻止特定问题而不是使用//NOSONAR和冒险在您的代码中意外蠕动的Sonar问题是更好的做法.

您可以在常见问题中了解更多相关信息

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

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

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

在左下角,它将有鱿鱼编号(例如squid:S1185可维护性>可理解性)

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

  • 感谢提示ingnoe多个声纳立方体警告 (2认同)

JB *_*zet 63

这是一个FAQ.你可以//NOSONAR在线上触发警告.我更喜欢使用FindBugs机制,其中包括添加@SuppressFBWarnings注释:

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

  • 您能否提供SonarQube常见问题解答的其他链接?我看到登录表单而不是FAQ (11认同)
  • FAQ链接已过时.这是新的[FAQ](http://docs.sonarqube.org/display/HOME/Frequently+Asked+Questions#FrequentlyAskedQuestions-Howtoremovefalsepositiveissues?) (4认同)
  • 同意。但是,我不确定 Sonar 是否正确解释了 `@SuppressFBWarnings`(添加以避免与 `java.lang.SuppressWarnings` 发生冲突)并忽略它。 (2认同)

小智 6

实际上,要理解哪个是问题的 ID 是很困难的,所以我使用了 @SuppressWarnings("all") 注释,它基本上适用于所有规则,但更准确地说,最好使用 ID。点击查看图片 -> 声纳问题 ID

因此,当点击“为什么这是一个问题?”时 在红色框中,您将进入一个带有解释的屏幕。在左侧屏幕顶部,您可以看到规则名称,左侧是该规则的 ID。因此,要应用此规则,您只需将此注释添加到您的类或方法中。

@SuppressWarnings("common-java:DuplicatedBlocks")


小智 5

我无法在声纳 5.6 中找到鱿鱼编号,此注释也有效:

@SuppressWarnings({"pmd:AvoidCatchingGenericException", "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck"})
Run Code Online (Sandbox Code Playgroud)


Jai*_*ain 5

如果无法帮助您的代码使用// NOSONAR,请在得到警告的行上使用。有用!