我们最近开始使用SonarQube。我们发现了一些 SonarQube 建议的规则,但我们想忽略它们或给它们低优先级,甚至配置 SonarQube 建议的时间。例如
我们想避免规则(和/或配置 SonarQube 建议的优先级和时间)
我找不到配置忽略此规则的方法。我们希望整个项目而不是特定类都忽略这种规则。
配置这个值将帮助我们有一个更好的时间估计来解决主要问题,并为上述两个规则提供低优先级。我们正在使用 SonarQube 6
我很感激你的建议。
如果你有你想要忽略的规则的 ID,那么你可以为此添加 SuppressWarnings
@SuppressWarnings("squid:S0016")
我不太喜欢这个,用来添加评论//NOSONAR 告诉SonarQube忽略特定行的所有错误。
如果我这样做:
System.setErr(System.out);
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
我的声纳抱怨要我使用记录器而不是 system.out...
因此我可以使警告静音:
System.setErr(System.out); //NOSONAR
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
如评论中所述,您所要做的就是从您的个人资料中删除规则或编辑它们以降低其优先级。您需要全局管理质量配置文件权限才能执行此操作。使用该权限登录后,转到“规则”界面,搜索要停用的规则,选择规则,单击它,然后从相关配置文件中将其停用。
正确的做法是在每个项目的
sonar-project.properties
文件中放置这样的内容:
sonar.issue.ignore.multicriteria=e1,e2
# tab characters should not be used
sonar.issue.ignore.multicriteria.e1.ruleKey=squid:S00105
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*.java
# right curly braces should be on a new line
sonar.issue.ignore.multicriteria.e2.ruleKey=squid:RightCurlyBraceStartLineCheck
sonar.issue.ignore.multicriteria.e2.resourceKey=**/*.java
也许这些答案有些陈旧,因为在 SonarQube UI 中有一种简单的方法可以做到这一点。
typescript:S1135
或 java:S107
)。复制此代码。例子
typescript:S1135
。您输入 typescript:S1135
作为规则键模式并输入 **/*
作为文件路径模式(** 匹配零个或多个目录。* 匹配零个或多个字符)。*
作为规则键模式,输入路径(path/to/your/file.js
)作为文件路径模式。