2011-06-27 12 views

Odpowiedz

9

Atrybut erroronmissingdir fileset jest dostępny od wersji Ant 1.7.1. Musisz używać wcześniejszej wersji 1.7.

atrybut jest używany, aby powiedzieć build dyskretnie ignorować zestawy plików, dla których podstawa reż nie istnieje w czasie wykonywania:

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

Jeśli nie określisz erroronmissingdir="false" (lub nie może, ponieważ twoją wersją Ant nie obsługuje go), a następnie domyślnym wynikiem jest błąd kompilacji, jeśli katalog foo nie istnieje.

Jeśli potrzebujesz kompilacji, aby odnieść sukces, niezależnie od tego, czy katalog istnieje, i nie możesz użyć atrybutu erroronmissingdir, masz kilka opcji.

Na przykład, można określić dir bazowy zestawu plików do być znany do istnieć rodzic Twojego docelowego katalogu, coś takiego:

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

(Uwaga: w tym przypadku, kopia będzie teraz tworzyć dir foo w todir z copy. można rozebrać, że przy użyciu glob mapper).

Inną alternatywą byłoby wykonać swoje warunkowo operacje fileset w cele, strzeżone przez warunek, np

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

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

Wyjście z ant -v pokaże:

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