Antメモ¶
逆引き¶
文字列処理¶
Windowsのパス文字列をUNIXのパス文字列に変換したい¶
Windows上のファイルパス(絶対パス)は、ドライブ記号を先頭に、ディレクトリ区切り記号にバックスラッシュ(円マーク)を使って C:\Users\torutk\work\Essen\lib
のように表現します。
UNIX上のファイルパス(絶対パス)は、ルートディレクトリを示す記号(スラッシュ)を先頭に、ディレクトリ区切り記号にスラッシュを使って /home/torutk/work/Essen/lib
のように表現します。
ここで、Windowsのパス文字列のディレクトリ区切り(だけ)を、バックスラッシュからスラッシュに変換したいとします。
${basedir}/lib の絶対パスを取得しUNIX形式パスに変換しlib.dirプロパティに格納する¶
- 書き方1
<path id="lib" location="${basedir}/lib" /> <pathconvert property="lib.dir" refid="lib" dirsep="/" />
- ファイルパスを取得するのにpath構造を使い、続くpathconvertで参照するためidを指定しています。
- pathconvertでディレクトリ区切りをスラッシュに指定し、refidで参照するファイルパスを変換し、プロパティlib.dirに格納しています。
- 書き方2
<pathconvert property="lib.dir" dirsep="/"> <path location="${basedir}/lib" /> </pathconvert>
- ファイルパスの取得はpathconvertの子要素として記述しています。
${basedir} が、 C:\Users\torutk\work\Essen
であった場合、lib.dirプロパティは C:/Users/torutk/work/Essen/lib
となります。
taskの追加¶
外部ライブラリの追加¶
- ANT_HOME/lib の下に置いたJARファイル
- ${user.home}/.ant/lib の下に置いたJARファイル
- コマンドラインオプション
-lib
で指定したJARファイル - 環境変数CLASSPATHに指定したJARファイル(非推奨)
- taskdefのclasspathに指定