我们怎么能忽略Java中的一些Qube规则呢?

我们怎么能忽略Java中的一些Qube规则呢?,java,sonarqube,rules,sonar-runner,sonarqube-scan,Java,Sonarqube,Rules,Sonar Runner,Sonarqube Scan,我们最近开始使用SonarQube。我们发现了SonarQube建议的一些规则,但我们希望忽略它们或给它们低优先级,甚至配置SonarQube建议的时间。例如 我们希望避免使用SonarQube建议的规则(和/或配置优先级和时间) 记录这个公共类。及 完成与此待办事项注释关联的任务 我找不到将此规则配置为忽略的方法。我们希望对整个项目而不是特定的类忽略这种规则 配置此值将有助于我们更好地估计时间,以解决主要问题,并为上述两种规则提供较低的优先级。我们正在使用声纳QUBE 6 我接受你的建议。如果

我们最近开始使用SonarQube。我们发现了SonarQube建议的一些规则,但我们希望忽略它们或给它们低优先级,甚至配置SonarQube建议的时间。例如

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

  • 记录这个公共类。及
  • 完成与此待办事项注释关联的任务
  • 我找不到将此规则配置为忽略的方法。我们希望对整个项目而不是特定的类忽略这种规则

    配置此值将有助于我们更好地估计时间,以解决主要问题,并为上述两种规则提供较低的优先级。我们正在使用声纳QUBE 6


    我接受你的建议。

    如果你有ypu想要忽略的规则id,那么你可以为此添加抑制警告

    例子: 我不太喜欢这个,用它来添加评论//NOSONAR 这会告诉SonarQube
    忽略特定行的所有错误

    例2: 如果我这样做:

    System.setErr(System.out);
    ConsoleHandler h = new ConsoleHandler(); 
    System.setErr(err);
    
    我的声纳抱怨让我使用记录器而不是系统

    因此,我可以通过以下方式消除警告:

    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
    

    创建一个新的质量配置文件,您可以根据需要进行微调。您可以从sonar web应用程序激活/取消激活规则(用于与项目相关联的配置文件)。但必须是loggedin才能做到这一点。@BheshGurung是第一个我无法找到要停用的确切标记,但我能找到的最接近的标记是“公共类型、方法和字段(API)应该用Javadoc记录”(这个公共类| languages=java)。停用后,是否应重新运行扫描仪?当我进入分析页面并刷新时,该标签仍然会出现,并且它仍然会影响修复bug所需的总时间。您在哪里了解这一点?是项目级还是类/文件级?你在哪里找到鱿鱼?我是这个工具的新手。在文件中。。。java文件。。。参见示例2操作。。。您需要再次运行scannerSuppressWarnings注释或NOSONAR注释不是禁用规则的正确方法,因为它们会污染源代码。@ΦXocę웃Пepeúpaツ 正如Ann所回答的,您需要从质量配置文件中禁用该规则。
    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