請幫助我解決這些問題。簡單地說,我只想對某些類型的類應用現有的 sonarqube 規則。據我所知,我們可以使用類樹來獲取類并識別目標類。我想知道的是如何在自定義規則中啟用或禁用現有的聲納規則?.下一個問題是確定擴展的子類的基類。例如,A 類擴展 B 類,B 擴展 C 類,現在我想識別從 C 類(基類)擴展的所有類。即使是一個小指南、鏈接、小費也會非常感激。
1 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
我認為您不能在自定義插件中禁用默認 java 插件的現有規則。您可以在您的配置文件中禁用該規則,并將默認規則替換為自定義規則。(實際上可能有辦法在您的插件中創建自定義問題過濾器)
規則是這樣實現的。
@Rule(key = "S1948") 公共類 SerializableFieldInSerializableClassCheck 擴展 IssuableSubscriptionVisitor
public List<Tree.Kind> nodesToVisit() {
return ImmutableList.of(Tree.Kind.CLASS);
}
public void visitNode(Tree tree) {
if(!hasSemantic()) {
return;
}
... rule logic
}
只需將現有規則復制(并更改規則鍵等)到您的自定義插件中并添加對類超類型的檢查
if(!classTree.symbol().type().isSubtypeOf("your.supertype.C")) || !hasSemantic()) {
return;
}
添加回答
舉報
0/150
提交
取消