入れ子になったリソースコレクション、または単一のリソースへの参照を、特定のプラットフォームのパス形式に変換します。オプションで、結果をプロパティに格納したり、Antのリソースに書き込むことができます。また、リソースコレクションをコンマやスペースなどの特定の文字で区切られたリストに変換する場合や、逆に、FileList内のファイルリストをパスに変換する場合にも使用できます。
入れ子になった<map>
要素を指定して、Windowsドライブ文字をUnixパスに、またはその逆にマッピングできます。
より複雑な変換は、入れ子になった<mapper>
(Apache Ant 1.6.2以降)を使用して実現できます。
属性 | 説明 | 必須 |
---|---|---|
targetos | ターゲットアーキテクチャ。 unix、 windows、 netware、 tandem、または os/2のいずれかである必要があります。これは、指定されたターゲットアーキテクチャに従ってpathsepとdirsepの両方を指定するための簡略化されたメカニズムです。 |
いいえ |
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です。 |
UnixとWindows間のパスプレフィックスのマッピングを指定します。
属性 | 説明 | 必須 |
---|---|---|
from | 一致させるプレフィックス。ビルドがWindowsプラットフォームで実行されている場合は大文字と小文字が区別されず、Unixプラットフォームで実行されている場合は大文字と小文字が区別されます。Ant 1.7.0以降、Windowsではこの値はディレクトリに使用されるスラッシュスタイルも区別しません。 /または \を使用できます。 |
はい |
to | fromが一致した場合に使用する置換テキスト。 | はい |
各map要素は、処理中のパスの要素に適用される単一の置換マップを指定します。mapエントリが指定されていない場合、パスプレフィックスのマッピングは実行されません。
注記:map要素は指定された順序で適用され、一致する最初のmap要素のみが適用されます。そのため、いずれかのfrom値が他のfrom値のプレフィックスである場合は、map要素の順序が重要になる可能性があります。
refid属性が指定されていない場合、1つ以上に入れ子になったリソースコレクションを指定する必要があります。
様々なファイル名変換を実行するために、入れ子になった<mapper>
要素を1つ指定できます(Ant 1.6.2以降)。
以下の例では、${wl.home}プロパティの値がd:\weblogicであり、${wl.home.unix}プロパティの値が/weblogicであると仮定します。
このタスクは、
<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
次のように定義された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
ここでは、filesetによって決定されたファイル名(.javaで終わるすべてのファイル)がコンマで区切られて結合され、結果のリストがjavafiles
プロパティに格納されます。ディレクトリセパレータは指定されていないため、現在のプラットフォームに適した文字がデフォルトで使用されます。このようなリストは、コンマで区切られたファイルリストを必要とするjavadoc
などの他のタスクで使用できます。
<fileset dir="${src.dir}" id="src.files"> <include name="**/*.java"/> </fileset> <pathconvert pathsep="," property="javafiles" refid="src.files"/>
このタスクは、WindowsとUnixの両方でprop
プロパティをdef|ghi
に設定します。
<pathconvert property="prop" dirsep="|"> <map from="${basedir}/abc/" to=""/> <path location="abc/def/ghi"/> </pathconvert>