こんにちは、カスタムルールチェックを使用してSonarqube用の独自のプラグインを作成しています。ルールは、メソッドやクラスの測定値に基づいて問題を報告する必要があります。このアプローチの鍵は、関連するメトリックの測定値にアクセスすることです。ここに私のサンプルチェッククラスがある:カスタムsonarqubeルールの対策へのアクセス(java check)
@Rule(key = "BrainMethod", name = "Brain method"
public class BrainMethod extends BaseTreeVisitor implements JavaFileScanner {
private JavaFileScannerContext context;
/* (non-Javadoc)
* @see org.sonar.plugins.java.api.JavaFileScanner#scanFile(org.sonar.plugins.java.api.JavaFileScannerContext)
*/
@Override
public void scanFile(JavaFileScannerContext context) {
this.context = context;
//scan the java file tree
scan(context.getTree());
}
/* (non-Javadoc)
* @see org.sonar.plugins.java.api.tree.BaseTreeVisitor#visitMethod(org.sonar.plugins.java.api.tree.MethodTree)
*/
@Override
public void visitMethod(MethodTree tree) {
// here is the place where I want to acces to the measurements
context.reportIssue(this, tree, String.format("Potentional brain method"));
super.visitMethod(tree);
}
は、このルールのコード、複雑または他のラインのようなメトリクスの計測値を取得する方法をどのような方法はありますか?あるいは私はそれをするために間違ったアプローチを使用していますか?
どの言語でカスタムルールを作成していますか? –
プラグインはJavaコードを解析します。 – franz9
あなたは達成したいことについてちょっと正確なことができますか? – benzonico