2011-06-27 6 views

答えて

9

fileset erroronmissingdir属性は、Ant 1.7.1以降で使用できます。 1.7の以前のリリースを使用している必要があります。

属性は、ベースdirは実行時に存在しないために黙ってファイルセットを無視するようにビルドを指示するために使用されます:あなたはerroronmissingdir="false"を指定しない場合

<copy todir="tmp"> 
    <fileset dir="foo" erroronmissingdir="false"> 
    <include name="**/*"/> 
    </fileset> 
</copy> 

(またはできないか、のAntのバージョン理由サポートしていない場合)、fooが存在しない場合、デフォルトの結果はビルドに失敗します。

dirが存在するかどうかにかかわらずビルドが成功する必要があり、erroronmissingdir属性を使用できない場合は、いくつかのオプションがあります。

たとえば、あなたがこのような何か、あなたのターゲットディレクトリの知らツーが存在親にファイルセットのベース・ディレクトリを指定することができます。

<copy todir="tmp"> 
    <fileset dir="."> 
     <include name="foo/**/*"/> 
    </fileset> 
    </copy> 

は(この場合はコピーを注意します今copytodirでディレクトリのfooを作成する。あなたはグロブmapperを使用していることを取り除くことができます。)

別の方法は、条件によって守ら目標であなたの条件付きで可能なファイルセットの操作を実行することになり、例えば

<available property="foo.available" file="foo"/> 

<target name="test" if="foo.available"> 
    <copy todir="tmp"> 
    <fileset dir="foo"> 
     <include name="**/*"/> 
    </fileset> 
    </copy> 
</target> 

ant -vとの出力が表示されます:

[available] Unable to find foo to set property foo.available 
test: Skipped because property 'foo.available' not set. 
BUILD SUCCESSFUL Total time: 0 seconds