FixCRLF

説明

テキストファイルをローカルの慣例に合わせて調整します。

調整されるファイルのセットは includesincludesfileexcludesexcludesfile そして defaultexcludes 属性によって改善されます。 includesincludesfile 属性で与えられたパターンで、含まれるファイルを指定します。 excludeexcludesfile 属性で与えられたパターンで、除かれるファイルを指定します。 加えて、デフォルト除外集合は defaultexcludes 属性で指定することができます。 ファイルの包含/排除パターンとその使い方の詳細は directory based tasks を参照して下さい。

このタスクは暗黙の FileSet を作成し、 <fileset> (dirsrcdir になります) の全ての属性はもちろん、ネストされた <include><exclude><patternset> 要素をサポートします。

出力ファイルはそれが新しいファイルか、存在しているファイルと異なる場合にだけ書き込まれます。 これは、このタスクが変更のないファイルを再生成してしまい、不必要なリビルドが起こるのを防ぎます。

パラメータ

属性 説明 必須
srcDir 修正するファイルを見つける場所です。 Yes
destDir 修正したファイルを保存する場所です。 デフォルトは srcDir です (オリジナルファイルを置き換えます)。 No
includes 包含すべきファイルのパターンのカンマまたはスペースで区切られたリスト。 省略された場合、すべてのファイルが含まれます。 No
includesfile ファイル名です。このファイルの各行は包含パターンとして解釈されます。 No
excludes 除外すべきファイルのパターンのカンマまたはスペースで区切られたリスト。 省略された場合、除外されるファイルは(デフォルト除外集合以外は)ありません。 No
excludesfile ファイル名です。このファイルの各行は除外パターンとして解釈されます。 No
defaultexcludes デフォルト除外集合が使われるかどうか ("yes"/"no") を示します。 省略した場合、デフォルト除外集合が使われます。 No
eol ラインの終了の文字 (EOL) がどのように扱われるか指定します。 EOL 文字とは CR、LF および CRLF のペアです。 このプロパティの有効な値は次の通りです :
  • asis: EOL 文字をそのままにしておきます。
  • cr: すべての EOL を単一の CR に変換します。
  • lf: すべての EOL を単一の LF に変換します。
  • crlf: すべての EOL を CRLF のペアに変換します。
  • mac: すべての EOL を単一の CR に変換します。
  • unix: すべての EOL を単一の LF に変換します。
  • dos: すべての EOL を CRLF のペアに変換します。
デフォルトは、このタスクを実行しているプラットフォームに基づきます。 Unix プラットフォームでは、デフォルトは "lf" です。 DOS ベースのシステム (Windows を含む) では、デフォルトは "crlf" です。 Mac OS では、デフォルトは "cr" です。

これは EOL を指定する好ましい方法です。 "cr" 属性(以下を参照)は現在非推奨です。

注意: 一つ特別なケースが認識されています。 3文字の CR-CR-LF は、単一の EOL と見なされます。 もしこのプロパティが "asis" に指定されなければ、 このシーケンスは指定された EOL タイプに変換されるでしょう。

No
cr 非推奨。 CR 文字が行の終わり (EOL) にどのように扱われるか指定します。 このプロパティの有効な値は次の通りです:
  • asis: EOL 文字をそのままにしておきます。
  • add: 任意の単一の LF 文字の前に CR を加えます。 この意図は EOL をすべて CRLF のペアに変換することです。
  • remove: ファイルからすべての CR を削除します。 この意図は EOL をすべて単一の LF に変換することです。
デフォルトは、このタスクを実行しているプラットフォームに基づきます。 Unix プラットフォームでは、デフォルトは "remove" です。 DOS ベースのシステム (Windows を含む) では、デフォルトは "add" です。

注意: 一つ特別なケースが認識されてます。 3文字の CR-CR-LF は、単一の EOL と見なされます。 もしこのプロパティが "asis" として指定されなければ、 このシーケンスは指定された EOL タイプに変換されるでしょう。

No
javafiles "tab" 属性(以下を参照)が指定されたときのみ使用されます。 この boolean 型の属性は、ファイルセットが java ソースファイルのセットかどうかを ("yes"/"no" で) 示します。 デフォルトは "no" です。 "tab" のセクションで注意を参照して下さい。 No
tab タブ文字がどのよう扱われるか指定します。 このプロパティの有効な値は次のとおりです:
  • add: タブひとつ分の幅を持つ連続したスペースをタブに変換します。
  • asis: タブとスペース文字をそのままにしておきます。
  • remove: タブをスペースに変換します。
このパラメータのデフォルトは "asis" です。

注意: "javafiles" 属性(上記参照)が "true" の場合、Java の文字列か文字定数内のリテラルな TAB 文字は修正されません。 この機能性は、さらに Java スタイルコメントの認識を要求します。

注意: 行の終わりの空白文字の取り扱いで前のバージョンとの間に非互換性があります。 このバージョンは、行末の空白文字を削除しません

No
tablength TAB 文字の間隔です。 有効な値は先頭と終わりを含めた2と80の間です。 デフォルトのパラメータは8です。 No
eof DOS のファイル終端文字 (control-Z) がどのように扱われるかを指定します。 このプロパティの有効な値は次のとおりです:
  • add: EOF 文字がファイルの最後にあることを保証します。
  • asis: EOF 文字をそのままにしておきます。
  • remove: 終わりで見つけられたどんな EOF 文字も削除します。
デフォルトは、このタスクを実行しているプラットフォームに基づきます。 Unix プラットフォームでは、デフォルトは remove です。 DOS ベースのシステム(Windows を含む)では、デフォルトは asis です。
No
encoding ファイルのエンコーディングです。 No - デフォルトは JVM のデフォルトエンコーディングです。
fixlast 処理されたファイルの最後の行に EOL がない場合に、 EOL を追加するかどうかを示します。(Ant 1.6.1 から) No - デフォルトは true です。

  <fixcrlf srcdir="${src}"
       eol="lf" 
       eof="remove"
       includes="**/*.sh"
  />

シェルスクリプトの EOL を LF 文字に置換して、eof 文字を取り除きます。 タブとスペースはそのまま残されます。

  <fixcrlf srcdir="${src}"
       eol="crlf"
       includes="**/*.bat"
  />

バッチファイル中のすべての EOL を、cr-lf に置換します。 タブとスペースはそのまま残されます。 DOS システム上で実行されれば、EOF 文字はそのままにしておかれ、 Unix システム上で実行されれば削除されます。

  <fixcrlf srcdir="${src}"
       tab="add"
       includes="**/Makefile"
  />

ローカルの OS の慣例に基づいて EOL をセットし、 連続したスペースとタブを、行内の間隔を維持する最小のスペースとタブのセットに変換します。 タブは8文字の間隔でセットされます。 DOS システム上で実行されれば、EOF 文字はそのまま残され、 Unix システム上で実行されれば削除されます。 make の多くのバージョンが、コマンドの前にタブがあることを要求します。

  <fixcrlf srcdir="${src}"
       tab="remove"
       tablength="3"
       eol="lf"
       javafiles="yes"
       includes="**/*.java"
  />

java ソースファイルに含まれた EOL をすべて単一の LF に変換します。 タブの幅を3と仮定して、 文字列または文字定数中のもの以外の TAB 文字をすべてスペースに置換します。 もし unix システム上で実行されれば、ファイルの終端のどんな CTRL-Z EOF 文字も削除されます。 DOS/Windows においては、どんな EOF 文字も手つかずで残されるでしょう。

  <fixcrlf srcdir="${src}"
       tab="remove"
       includes="**/README*"
  />

ローカルの OS の慣例に基づいて EOL をセットし、 タブ幅を8と仮定してタブをすべてスペースに置換します。 DOS システム上で実行されれば、EOF 文字はそのまま残され、 Unix システム上で実行されれば削除されます。 ユーザが README を閲覧するためにどんなエディタを使うのかは、わからないものです。


Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは高崎 俊史、菅原敦が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]