我们最近开始使用 SonarQube 。我们已经找到了SonarQube建议的一些规则,但我们想忽略它们或给它们低优先级,甚至配置SonarQube建议的时间。例如
我们希望避免规则(和/或配置SonarQube建议的优先级和时间)
我找不到配置此规则以供忽略的方法。我们希望忽略整个项目而不是特定类的这种规则。
配置此值可帮助我们更好地估算主要问题,并为上述规则提供低优先级。我们正在使用SonarQube 6
我提出你的建议。
答案 0 :(得分:5)
如评论中所述,您所要做的就是从您的个人资料中删除规则或编辑它们以降低其优先级。您需要“全局管理质量配置文件”权限才能执行此操作。使用该权限登录后,请转到规则界面,搜索要停用的规则,选择规则,单击该规则,然后从相关配置文件中取消激活该规则。
答案 1 :(得分:4)
如果你有想要忽略的规则的id,那么你可以添加 SuppressWarnings
@SuppressWarnings("squid:S0016")
我不喜欢这个,并且用来添加评论 // NOSONAR 告诉 SonarQube 忽略特定行的所有错误。
如果我这样做:
System.setErr(System.out);
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
我的声纳抱怨我要用logger而不是system.out ......
因此,我可以保持警告:System.setErr(System.out); //NOSONAR
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
答案 2 :(得分:0)
正确的方法是在每个项目的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