Java がシンボリックリンクをサポートしているプラットフォーム上のシンボリックリンクを管理します。個別のリンクの作成、リンクの削除、プロパティファイルから複数のリンクの作成、または指定したディレクトリ内のリンクを説明するプロパティファイルの作成に使用できます。既存のファイルはデフォルトでは上書きされません。
FileSet は、記録するリンクのセット、またはリンクを作成するプロパティファイルのセットを選択するために使用されます。
属性 | 説明 | 必須 |
---|---|---|
action | 実行するアクションのタイプ。"single、" record、 recreate、または deleteです。 |
いいえ。デフォルトは singleです。 |
link | 作成または削除するリンクの名前です。 注: この属性は、プロジェクトの basedir ではなく、現在の作業ディレクトリに対して解決されます。これは過去の理由によるものです。値として常に絶対パスまたは ${basedir}/some-path などのパスを使用することをお勧めします。 |
はい。 action=singleまたは deleteの場合。他のアクションでは無視されます。 |
resource | リンクが指すリソースです。 | はい。 action=singleの場合。他のアクションでは無視されます。 |
linkfilename | 各含まれるディレクトリに作成するプロパティファイルの名前です。 | はい。 action=recordの場合。他のアクションでは無視されます。 |
overwrite | 既存のファイルを上書きするかどうか。overwrite が trueに設定されている場合、link 属性で指定した既存のファイルは、既存のファイルがシンボリックリンクであるかどうかに関係なく上書きされます。 |
いいえ。デフォルトは falseです。 |
failonerror | true の場合、ビルドを停止します。エラーが発生した場合に falseの場合、警告メッセージをログに記録しますが、ビルドは停止しません。 |
いいえ。デフォルトは trueです。 |
FileSet は、 action=record
の場合に、記録するディレクトリとリンク名を指定するために使用されます。また、 action=recreate
の場合は、処理するプロパティファイルの名前と、それらを見つけることができるディレクトリの両方を指定するために使用されます。各ケースに少なくとも 1 つの fileset が必要です。
samp>bar.foo という名前のリソースに foo という名前のリンクを作成します。
<symlink link="${dir.top}/foo" resource="${dir.top}/subdir/bar.foo"/>
subdir 内とそのサブディレクトリ内のすべてのリンクを dir.links という名前のファイルに記録します。
<symlink action="record" linkfilename="dir.links"> <fileset dir="${dir.top}" includes="subdir/**"/> </symlink>
前の例で記録されたリンクを再作成します。
<symlink action="recreate"> <fileset dir="${dir.top}" includes="subdir/**/dir.links"/> </symlink>
foo という名前のリンクを削除します。
<symlink action="delete" link="${dir.top}/foo"/>
Java 1.2 およびそれ以前: Java の 1.3 より前のバージョンでシステムレベルのコマンドを実行する場合の制限により、このタスクは ANT_HOME
で相対パスを使用すると操作が難しい場合があります。一般的な症状は、Apache Ant が /some/working/directory${ANT_HOME}/bin/antRun または類似したものを見つけることができない IOException
です。回避策は、ANT_HOME
環境変数を絶対パスに変更することです。これにより、上記のパスから /some/working/directory の部分が削除され、Ant が正しいコマンドライン実行スクリプトを見つけることができます。
注: Ant 1.10.2 以降、このタスクは java.nio.file.Files
API を通じて Java 7 で導入されたシンボリックリンクサポートに依存します。