用于将涉及手动规则的问题添加到声纳中的插件

时间:2013-07-31 14:23:25

标签: plugins sonarqube

 import org.sonar.api.component.ResourcePerspectives;

       public class MySensor extends Sensor {
         private final ResourcePerspectives perspectives;

         public MySensor(ResourcePerspectives p) {
           this.perspectives = p;
         }

         public void analyse(Project project, SensorContext context) {
           Resource myResource; // to be set
           Issuable issuable = perspectives.as(Issuable.class, myResource);
           if (issuable != null) {
             // can be used
             Issue issue = issuable.newIssueBuilder()
               //repository : pmd, key : AvoidArrayLoops
               .setRuleKey(RuleKey.of("pmd", "AvoidArrayLoops"))
               .setLine(10)
               .build();
             //works
             issuable.addIssue(issue);
             Issue issue2 = issuable.newIssueBuilder()
               //repository : manual, key : performance
               .setRuleKey(RuleKey.of("manual", "performance"))
               .setLine(10)
               .build();
             // doesn't work
             issuable.addIssue(issue2);
           }
         }
       }

当我尝试添加问题“问题”时,引用pmd规则AvoidArrayLoops它可以工作。更一般地说,当我尝试添加引用pmd或checkstyle规则的问题时,它可以正常工作。

但是,当我尝试添加涉及手册规则(例如问题“问题2”)的问题时,它不起作用。我手动创建了规则“性能”,因此规则性能存在于声纳中的手动规则列表中。

我想知道是否无法添加引用手动规则的问题,或者我是否使用方法RuleKey.of的正确参数。

由于

1 个答案:

答案 0 :(得分:0)

Sonar中未显示自定义问题的一个原因可能是您尚未启用规则。

选择设置 - 质量配置文件,单击质量配置文件,选择“编码规则”选项卡,将激活设置为“任意”,单击搜索并检查您的规则是否显示在此处。

如果是,请选中它旁边的复选框,然后选择严重性。现在,规则违规将显示在Sonar中。