jenkins 为特定代码关闭声纳

eqzww0vc  于 2023-03-07  发布在  Jenkins
关注(0)|答案(7)|浏览(173)

是否可以关闭声纳(www.sonarsource.org)对特定代码块的测量,哪一个不想被测量?
一个例子是Findbugs输出的“PreserveStackTrace”警告,当我离开服务器时,如果客户端不知道异常(例如,因为客户端没有包含异常的JAR),我可能只想把消息传回客户端,而不包括我刚刚捕获的实际异常。

stszievb

stszievb1#

可以使用SuppressWarnings注解类或方法

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

squid:S00112在本例中是Sonar问题ID。您可以在Sonar UI中找到此ID。转到问题深入查看。找到您想要禁止警告的问题。在代码中的红色问题框中有一个规则链接,其中包含给定问题的定义。单击该链接后,您将在页面顶部看到此ID。

iyr7buue

iyr7buue2#

我建议您尝试使用@SuppressWarnings("squid:S2078")来抑制特定警告。
要抑制多个警告,可以像@SuppressWarnings({"squid:S2078", "squid:S2076"})这样执行
还有//NOSONAR注解,告诉SonarQube忽略特定行的所有错误。
最后,如果您对用户界面具有适当的权限,则可以直接从界面发出误报标志。
我建议抑制特定警告的原因是,阻止特定问题比使用//NOSONAR更好,因为这样会冒着Sonar问题无意中潜入代码的风险。
您可以在常见问题解答中了解更多信息
编辑:6/30/16 SonarQube现在被称为SonarLint
如果你想知道如何找到乌贼号,只需点击声纳消息(ex. Remove this method to simply inherit it.),声纳问题就会扩大。
在左下角,它将有squid编号(例如:squid:S1185可维护性〉可理解性)
所以你可以用@SuppressWarnings("squid:S1185")来抑制它

pobjuy32

pobjuy323#

这是一个FAQ。您可以将//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")
rbl8hiat

rbl8hiat4#

如果你不能帮助你的代码,在你得到警告的行上使用//NOSONAR。它很有效!

dbf7pr2w

dbf7pr2w5#

我无法找到乌贼号声纳5.6,与此注解也工作:

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

dy1byipe6#

实际上,要理解问题的ID很难,所以我使用了@SuppressWarnings(“all”)注解,它基本上适用于所有规则,但更准确地说,最好使用ID。单击查看图片-〉Sonar Issue ID
因此,当点击红色框中的“Why is this a issue?”(为什么这是一个问题?)时,您将进入一个带有解释的屏幕。在屏幕顶部的左侧,您可以看到规则名称,在左侧,您可以看到此规则的ID。因此,要应用此规则,您只需将此注解添加到您的类或方法中。
@SuppressWarnings(“公共java:重复块”)

hjzp0vay

hjzp0vay7#

任何方法的代码复杂度仅允许为15,如果我们必须在不重构方法的情况下解决此问题,则可以在方法定义的顶部使用此代码:-@SuppressWarnings({“java:S3776”})

相关问题