2013-07-31 78 views
2
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規則的問題時,它就起作用了。插件用於將涉及手動規則的問題添加到聲納中

但是,當我嘗試添加引用諸如問題「issue2」等手動規則的問題時,它不起作用。我手動創建了規則「性能」,因此規則性能存在於聲納中的手動規則列表中。

我想知道是否不可能添加引用手動規則的問題,或者如果我沒有爲方法RuleKey.of使用正確的參數。

感謝爲什麼聲納不顯示自定義的問題可能是你沒有啓用它的規則

回答

0

原因之一。

選擇設置 - 質量配置文件,單擊您的質量配置文件,選擇選項卡「編碼規則」,將激活設置爲「任何」,單擊搜索並檢查您的規則是否顯示在這裏。

如果是這樣,請選中它旁邊的複選框並選擇嚴重性。現在,規則違規將顯示在Sonar中。

相關問題