Pathconvert

説明

入れ子になったリソースコレクション、または単一のリソースへの参照を、特定のプラットフォームのパス形式に変換します。オプションで、結果をプロパティに格納したり、Antのリソースに書き込むことができます。また、リソースコレクションをコンマやスペースなどの特定の文字で区切られたリストに変換する場合や、逆に、FileList内のファイルリストをパスに変換する場合にも使用できます。

入れ子になった<map>要素を指定して、Windowsドライブ文字をUnixパスに、またはその逆にマッピングできます。

より複雑な変換は、入れ子になった<mapper>Apache Ant 1.6.2以降)を使用して実現できます。

パラメータ

属性 説明 必須
targetos ターゲットアーキテクチャ。 unixwindowsnetwaretandem、またはos/2のいずれかである必要があります。これは、指定されたターゲットアーキテクチャに従ってpathsepdirsepの両方を指定するための簡略化されたメカニズムです。 いいえ
dirsep 生成されたパスでディレクトリセパレータとして使用する文字。 いいえ。現在のJVM File.separatorがデフォルトで使用されます。
pathsep 生成されたパスでパスの要素セパレータとして使用する文字。 いいえ。現在のJVM File.pathSeparatorがデフォルトで使用されます。
property 変換後のパスを格納するプロパティの名前。 いいえ。@property@destのどちらも設定されていない場合、結果はログに出力されます。
dest 変換後のパスを書き込む宛先リソース(AntはこれをデフォルトでFileとして解釈します)。Ant 1.10.13以降 いいえ。@property@destのどちらも設定されていない場合、結果はログに出力されます。
refid 変換する対象。<path><fileset><dirset>、または<filelist>への参照として指定します。 はい。入れ子になった<path>要素が指定されていない場合。
setonempty 結果が空文字列の場合でもプロパティを設定するかどうか。 いいえ。デフォルトはtrueです。
preserveduplicates 重複するリソースを保持するかどうか。Ant 1.8以降 いいえ。デフォルトはfalseです。

入れ子要素として指定されたパラメータ

map

UnixとWindows間のパスプレフィックスのマッピングを指定します。

属性 説明 必須
from 一致させるプレフィックス。ビルドがWindowsプラットフォームで実行されている場合は大文字と小文字が区別されず、Unixプラットフォームで実行されている場合は大文字と小文字が区別されます。Ant 1.7.0以降、Windowsではこの値はディレクトリに使用されるスラッシュスタイルも区別しません。 /または\を使用できます。 はい
to fromが一致した場合に使用する置換テキスト。 はい

各map要素は、処理中のパスの要素に適用される単一の置換マップを指定します。mapエントリが指定されていない場合、パスプレフィックスのマッピングは実行されません。

注記:map要素は指定された順序で適用され、一致する最初のmap要素のみが適用されます。そのため、いずれかのfrom値が他のfrom値のプレフィックスである場合は、map要素の順序が重要になる可能性があります。

リソースコレクション

refid属性が指定されていない場合、1つ以上に入れ子になったリソースコレクションを指定する必要があります。

mapper

様々なファイル名変換を実行するために、入れ子になった<mapper>要素を1つ指定できます(Ant 1.6.2以降)。

以下の例では、${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があるとします。

<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によって決定されたファイル名(.javaで終わるすべてのファイル)がコンマで区切られて結合され、結果のリストがjavafilesプロパティに格納されます。ディレクトリセパレータは指定されていないため、現在のプラットフォームに適した文字がデフォルトで使用されます。このようなリストは、コンマで区切られたファイルリストを必要とするjavadocなどの他のタスクで使用できます。

<fileset dir="${src.dir}" id="src.files">
  <include name="**/*.java"/>
</fileset>

<pathconvert pathsep="," property="javafiles" refid="src.files"/>

例4

このタスクは、WindowsとUnixの両方でpropプロパティをdef|ghiに設定します。

<pathconvert property="prop" dirsep="|">
  <map from="${basedir}/abc/" to=""/>
  <path location="abc/def/ghi"/>
</pathconvert>