2017-04-20 9 views
0

でロガーやLoggerFactoryをチェックする方法、それはこのの発生をキャッチすることができます。 これにはvisitLiteral()を使用する必要がありますか?Sonarqubeは、私はJavaを使用してSonarqubeでカスタムルールを構築したいコード

+1

この[リンク](https://docs.sonarqube.org/display/PLUG/Writing+Custom+Java+Rules+101)はあなたを助けます –

+0

このリンクはvisitnodeとvisitmethodについて語ります。私の質問には答えられません。 – agnihot

答えて

1

tutorial(@ user7790438で完全に指摘されているように、org.sonar.plugins.java.api.IssuableSubscriptionVisitorを拡張したカスタムルールを書くのが最も簡単な方法です。それに記述されているものに適応する必要がありますが、それはあなたに基本を与えます)、Tree.Kind.Identifierノードに登録してください。

次に、すべての識別子ノードにアクセスしたら、与えられたノードを org.sonar.plugins.java.api.tree.IdentifierTreeにキャストして、name()を取得します。そこから、LoggerまたはLoggerFactoryと呼ばれるかどうかを確認できます。

もう1つのアプローチは、Tree.Kind.IMPORTツリーにサブスクライブし、修飾された識別子を検査することです。しかし、スター・インポートの使用はこれを効率的ではなくなり、すべての発生を見つけることができなくなります。あなたの情報については

、あなたは言語の唯一のリテラル(文字列、整数、ダブルス、ブール値など)を訪れることになりますようお勧めしますが、メソッドの名前のように、リテラルを訪問することはできません...

+0

ありがとう、私はこれを試してみます。 – agnihot

+0

あなたはその答えを検証したいかもしれません... –

関連する問題