2009-10-10 10 views
5

私はいくつかのパブリック静的フィールドを非難しているAPIを維持しています。廃止されたメソッドやクラスに対するCheckStyleの苦情を無効にすることはできますか?

CheckStyleはこれらについて大声で苦情を言いますが、私はこのフィールドを非推奨としてマークして問題を処理して以来、それらを完全に無視しています。

具体的には、ライブラリに列挙定数(public static final)がありますが、finalとしてマークされていません。 CheckStyleはそれらについて文句を言いますが、私は契約を破ることなくそれらを最終に変更することはできません。

私が計画しているのは、推奨されていないものとしてマークしてから後で削除することです。しかし、それらを非推奨としてマークしても、CheckStyleレポートからは削除されません。

+0

正確な出力を提供できますか? –

答えて

8

私はあなたのための2つのオプションがあります。

  1. を使用すると、抑圧構成を使用すると、行をシフトされるたびに更新する必要があり、このアプローチはあまり柔軟である

    手動ライン毎に警告を抑止します。しかし、個々のオカレンスを個別に処理できます。

    <suppress checks="YOURCHECK" files=".*YOURCLASS\.java" lines="YOURLINES"/> 
    

    あなたの問題の原因となっているチェックがわからないので、YOURCHECKを正しい名前に置き換える必要があります。 YOURCLASSは廃止予定のコードを含むjavaファイルを指定しますが、.*を挿入してすべてのファイルに適用することができます。 YOURLINESはコンマで区切られた値のリストです。各値は、整数またはinteger-integerで示される整数の範囲です。

  2. このソリューションでは、一度にすべての非推奨のメンバーのチェックを無効にすることができます。警告

    を無視するのCheckstyleを助言するコメントを使用しかし厳しい条約に従わなければなりません。このフィルタには厳密な範囲があるため、最後の位置にあるメンバーには@deprecatedのコメントを追加する必要があります。

    /** 
    * @deprecated I don't like this anymore. 
    */ 
    public static String EXAMPLE = "example"; 
    

    このソリューションは、設定ファイル内で変更が必要です。まず、TreeWalkerに子としてFileContentsHolderを追加する必要があります。

    <module name="TreeWalker"> 
        ... 
        <module name="FileContentsHolder"/> 
        ... 
    </module> 
    

    今、あなたはCheckerモジュールの一部である​​を設定することができます。

    <module name="Checker"> 
        ... 
        <module name="SuppressWithNearbyCommentFilter"> 
         <property name="commentFormat" value=".*deprecated.*"/> 
         <property name="checkFormat" value=".*"/> 
         <property name="influenceFormat" value="2"/> 
        </module> 
        ... 
    </module> 
    

    特定のチェックのみを無視する場合は、checkFormat属性を調整します。または、別のコメントを使用する場合は、commentFormat属性を変更します。しかし、それは正しい値にinfluenceFormatを設定することは非常に重要です。それは、コメントの後の何行目かのチェックスタイルを、それらのチェックを無視することによると伝えます。

P.S:あなたはそのユーザーインターフェイスで設定を変更した場合、あなたがそれを使用してはならないので、EclipseののCheckstyleプラグインはFileContentsHolderモジュールを削除することに注意してください。

+2

これは素晴らしいことです。完璧! –

関連する問題