1

私は注釈が初めてです。私がやろうとしているのは、他のものを含むものを書くことです。これまでに必要としたことはなく、初めて使用するので、これは部分的に学習経験のためです.

一部のサード パーティ コードに対して checkstyle の免除がありますが、Sonar サーバーに免除を追加したい人はいません。私がやりたいのは、私にとって危険と思われる @SupressWarnings("all") を適用するのではなく、チェックスタイルの除外を選択できるようにするスーパーアノテーションを書くことです。提案されたアノテーションは、基本的に @SupressWarnings("checkstyle キーをここに置く") のグループを適用するだけです。最初のバージョンでは、すべての checkstyle が除外されます。次のバージョンでは、カテゴリ、サブカテゴリなどによって、リーフの除外に近づける機能が追加されます。私が得ることができるアドバイスを使用できます。現在、注釈で取得できるものを読んでいますが、リフレクションもあまり使用していません。

4

2 に答える 2

0

SuppressWarnings 注釈は、コンパイラ/IDE 固有のものです。@SuppressWarnings("your-specific-syntax") を他のさまざまな @SuppressWarnings に変更するプロジェクトロンボク スタイルのコード生成を実行する場合を除き、Java コンパイラを魔法のように変更する独自の注釈エントリをその中に作成することはできません。そのためには、AST と対話する必要があります。Lombok のソース コードを見て、Annotation Processing Tool (APT) を読んでください。

于 2013-01-31T21:14:06.293 に答える
0

それはすでに Checkstyle に組み込まれています。
次の N 行に対して指定された警告を無視するように checkstyle をトリガーする特定の除外文字列を有効にして設定する必要があります。

カスタム checkstyle 構成の checks.xml を使用し、以下を追加します。

<module name="SuppressWithNearbyCommentFilter">
    <property name="commentFormat" value="CS\:IGNORE ([\w\|]+) (\d+)"/>
    <property name="checkFormat" value="$1"/>
    <property name="influenceFormat" value="$2"/>
  </module>

行またはメソッドの上にコメントを付けて、特定のチェックを無視できるようになりました。

例:

// CS:IGNORE Catch|MethodLength 10
public void longMethod() {
  // Method that would cause checkstlye to detetced a length and Catch Exception warning
}

Catch|MethodLength : 警告を無視: Catch および MethodLength

10 は、次の 10 行に対して除外ルールが有効であることを意味します。

于 2013-01-31T21:25:44.093 に答える