2016-08-23 1330 views
1

我们最近开始使用SonarQube。我们发现了SonarQube建议的一些规则,但我们希望忽略它们或给它们一个低优先级,甚至配置由SonarQube建议的时间。对于e.g我们如何忽略Java中的一些SonarQube规则?

我们希望避免的规则(和/或配置由SonarQube建议的优先级和时间)

  1. 文档此公共类。和
  2. 完成与此TODO评论相关的任务。

我找不到配置此规则以忽略的方法。我们希望这种规则在整个项目中被忽略,而不是具体的类。

配置这个值可以帮助我们有更好的时间估计来解决主要问题,并对上述两个规则给予低优先级。我们正在使用SonarQube 6

我接受你的建议。

+2

创建一个新的质量配置文件,你可以微调任何你想要的。 – ppeterka

+2

您可以从声纳Web应用程序激活/取消激活规则(对于与您的项目相关联的配置文件)。但必须登录才能做到这一点。 –

+0

@BheshGurung对于第一个我无法找到停用的确切标签,但我能找到的最接近的标签是“公共类型,方法和字段(API)应该用Javadoc记录”(http:// localhost: 9000/coding_rules#q =记录此公共类| languages = java)。停用后,我应该重新运行扫描仪吗?当我进入分析页面并刷新时,该标签仍然出现,并且仍然会影响必须花费在修复错误上的总时间。 – WowBow

回答

4

正如评论中指出的那样,您所要做的就是从您的专业版中删除规则文件或编辑它们以降低其优先级。您需要全局管理质量配置文件权限才能执行此操作。使用该权限登录后,转到规则界面,搜索要停用的规则,选择规则,点击规则并从相关配置文件中取消激活规则。

+0

这对我有用。谢谢。 – WowBow

0

如果您有规则YPU的id希望忽略,那么你可以添加SuppressWarnings

例子:

@SuppressWarnings("squid:S0016") 

我不喜欢这个太多,使用添加评论// NOSONAR 告诉SonarQube忽略特定线路的所有错误。

例2:

如果我这样做:

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); 
+0

你在哪里?处于项目级别还是级别/文件级别?你在哪里找到鱿鱼?我是该工具的新手。 – WowBow

+0

在档案...java文件...参见示例2 –

+0

我对你的帮助表示怀疑,但我们有成千上万的文件(在使用SonarQube之前的以前的项目),并且我们不可能将每个班级更改为使用@SuppressWarnings。但我们可以将它们用于新类。 – WowBow