61


15

Antを使用してフォルダの存在を確認するにはどうすればよいですか?

ファイルの存在を確認することはできますが、フォルダーについても同様にできますか?

5 Answer


93


あなたは availableタスクをタイプ "dir"に設定して使用します。

例えば:


条件付き処理を行う標準的な方法は、 condition taskを使うことです。 以下の例では、ディレクトリが存在する場合はdoFooを実行するとメッセージがエコーされ、ディレクトリが存在する場合はdoBarを実行するとメッセージがエコーされます。

_dir.check_ターゲットはdoFooとdoBarの両方に必要で、利用可能なタスクの結果に応じて_dir.exists_プロパティをtrueまたはfalseに設定します。 doFooターゲットは、そのプロパティがtrueに設定されている場合にのみ実行され、doBarは、設定されていないかfalseに設定されている場合にのみ実行されます。

$ {directory}は存在します

「$ {directory}が見つかりません」
http://antelope.tigris.org/[Antelope]は、処理をより簡単にすることができるIfタスク(そして私にとっては直感的なタスク)を含む追加のタスクを提供します。Antelopeタスクはhttp:// antelopeからダウンロードできます。 tigris.org/servlets/ProjectDocumentList [ダウンロードページ]。


29


以下は、 `+ available `要素を ` if +`テストに組み込んだ小さな例です。


警告:ANT_HOME \ libディレクトリにant-contrib.jarが必要です。そうしないと、 `+ if +`要素にアクセスできず、スクリプトは次のエラーで失敗します。

Problem: failed to create task or type if
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any / declarations have taken place.


9


これが私の解決策で、これはプロパティの設定や 'if’や 'except’を使ったターゲットの使用を必要としません。

マクロ:


使用法:



1


ANT 1.8バージョンを使用した私の解決策は、$ \ {evalTrueOrFalse}構文をサポートしていない場合を除いて、古いバージョンは正しく動作しない可能性があります。


  • ANT 1.6またはそれ以前のANT 1.7は機能しません。ANT1.8リリースにアップグレードしてください。

  • ターゲット属性_if_および_unless_は、$ \ {var}構文をtrue / falseに評価します。

  • available属性がfalseの場合、条件属性_else_ valueはpropertyに設定され、それ以外の場合は変数は設定されません。 NotSet値は、明示的なfalse値と同じではありません。

  • 任意のターゲットを呼び出すが、if / except属性は実際に実行するかどうかを定義する

_ [If / except] Ant 1.7.1以前では、これらの属性はプロパティ名のみである可能性があります。 Ant 1.8.0以降では、代わりにプロパティ展開を使用できます。 古いスタイルと比較して、これはあなたにさらなる柔軟性を与えます。


0


これは別のアプローチで、ant-contrib.jarを使わずにただ一つのタスクを呼び出すことができます。

{いくつかのタスク}

{他のタスク}