Pathconvert

説明

ネストされた<path>や、 path、fileset、dirset、または、filelist への参照を特定のプラットフォーム用のパス形式に変換し、結果を与えられたプロパティに保存します。 また、 path、fileset、または dirset を、 カンマや空白文字といった与えられた文字で区切られたリストに変換する必要がある場合にも使えます。 逆に、filelist 中のファイルの一覧をパスに変換したい場合にも使えます。

ネストされた<map>要素は、 Windows のドライブ文字を Unix のパスに、またその逆にマッピングするために指定されます。

パラメータ

属性 説明 必須
targetos ターゲットのアーキテクチャ。 'unix'、'windows'、'netware'、'tandem' または 'os/2' のいずれか一つでなければならない。 与えられたターゲットアーキテクチャに従った、 pathsep および dirsep の双方を指定するメカニズムの省略形です。 pathsep および/または dirsepが指定されない限りは Yes
dirsep 生成されたパスのディレクトリ区分記号として使われる文字 No、デフォルトは現在のJVM のFile.separator
pathsep 生成されたパスのパス要素区分記号として使われる文字 No、デフォルトは現在のJVM のFile.pathSeparator
property 変換されたパスが置かれるプロパティ名 Yes
refid 別の場所で定義された、 <path><fileset><dirset>または<filelist> への参照として与えられる 変換対象 No; 省略された場合、 ネストされた<path>要素を与えなければならない
setonempty 結果が空文字列であったとしても、プロパティを設定するか No; デフォルトは "true".

ネストする要素で指定されるパラメータ

map

Unix と Windows の間のパス接頭辞のマッピングを指定します。

属性 説明 必須
from パターンマッチのための接頭辞。 この値は Windows プラットフォーム上で、 ビルドを実行する場合には大文字小文字を区別せず、 Unix プラットフォーム上で実行する場合には、 大文字小文字を区別します。 Yes
to fromがマッチした場合に使われる置換文字列 Yes

個々の map 要素は、 処理されるパスの要素に適用される一つの置換マッピングを指定します。 map エントリが指定されなかった場合、 パス接頭辞マッピングは何も行われません。

注意: map 要素は指定された順序で適用され、 最初にマッチした map 要素のみが適用されます。 ですから、 ある from の値が、他のfromの値の接頭辞だった場合に、 map 要素の順序は重要となることがあります。

path

refid 属性が指定されなかった場合、 ネストされた<path>要素を必ず与えなければなりません。 詳しくはパス類似構造をご覧ください。

下の例では、 プロパティ ${wl.home} が 値 d:\weblogic を持ち、 ${wl.home.unix}/weblogic を持つとしています。

例 1

    <path id="wl.path">
      <pathelement location="${wl.home}/lib/weblogicaux.jar"/>
      <pathelement location="${wl.home}/classes"/>
      <pathelement location="${wl.home}/mssqlserver4/classes"/>
      <pathelement location="c:\winnt\System32"/>
    </path>
    
    <pathconvert targetos="unix" property="wl.path.unix" refid="wl.path">
      <map from="${wl.home}" to="${wl.home.unix}"/>
      <map from="c:" to=""/>
    </pathconvert>

これは、下で示されるパスを生成し、 wl.path.unixという名前のプロパティに保存されます。

/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32

例 2

あるファイルリストが次のように定義されているとします:
  <filelist id="custom_tasks.jars"
        dir="${env.HOME}/ant/lib"
        files="njavac.jar,xproperty.jar"/>
すると:
    <pathconvert targetos="unix" property="custom_tasks.jars" refid="custom_tasks.jars">
      <map from="${env.HOME}" to="/usr/local"/>
    </pathconvert>
これはファイルのリストを次の Unix パスに変換します:
/usr/local/ant/lib/njavac.jar:/usr/local/ant/lib/xproperty.jar

例 3

    <fileset dir="${src.dir}" id="src.files">
      <include name="**/*.java"/>
    </fileset>
  
    <pathconvert pathsep="," property="javafiles" refid="src.files"/>

この例では、 ファイルセット(.javaで終る全てのファイル) により定義されるファイルの集合を取り、 カンマで区切ってそれを一つに繋げ、 結果のリストをプロパティjavafilesに置きます。 ディレクトリ区分記号は指定されていないので、 カレントプラットフォームの適切な文字をデフォルトに取ります。 そして、このようなりストは、 javadocといった、 カンマで区切られたファイルのリストを必要とする別のタスクで使われるでしょう。


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

[訳注:これは漆島賢二の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]