2012-09-21 10 views
8

Musiało być proste ustawienie, którego mi brakuje, więc wybacz mi, ale zauważyłem przy dwóch okazjach, że moje złe zadania mrówek nie powodują niepowodzenia kompilacji. Na przykład:Mrówka Pomyślna, nawet gdy Zadanie Anty zawodzi

  1. Ant kopia gdy plik źródłowy nie istnieje ... tworzenia skutecznych

  2. Ant rozpakować, gdy raporty zadania „Nie można zapisać pliku” lub podobny komunikat ... tworzenia skutecznych

  3. Ant Exec błąd, nieważne składni ... tworzenia skutecznych

Jak mogę zagwarantować, że wszystkie błędy ant zadania spowoduje w niepowodzeniu kompilacji?

+0

Wiele zadań mają parametry, aby włączyć/wyłączyć „failonerror”, bo czasami nie chcesz zadanie niepowodzenie kompilacji. Sprawdź dokumenty i spójrz ostrożnie na tabelę param. – coolcfan

+1

@coolcfan, Powinno to zawsze zawieść, o ile nie wskazano inaczej, domyślnym błędem EXEC jest błąd. Myślę, że problemy z COPY i UNZIP są powiązane z próbą bezpośredniego uruchomienia ant-launcher.jar. :( – cmcginty

+0

Dodałem failonerror = "true", a Ant kontynuuje kompilację.Gdy jest "często wcześnie fail fail fail" w tym programie? –

Odpowiedz

4

Czy próbowałeś następujący:

<copy todir="your/path/details" failonerror="true"> 
</copy> 

<zip destfile="your/path/details" whenempty="fail"> 
</zip> 

<exec executable="your/path/details" failonerror="true"> 
</exec> 
+1

domyślne ustawienie copy to failonerror = "true", a nawet ręczne ustawienie nie powoduje awarii. – cmcginty

+0

zadanie kopiowania nie działa tak jak defaultOnError jest ustawione domyślnie na wartość true. –

7
  • <EXEC> zadania nie zawieść domyślnie. Musisz włączyć to przy pomocy failonerror="true"

  • Awaria zadania Ant <COPY> zależy od typu używanego zbioru zasobów. Jeśli używasz fileset lub patternset, wszystkie brakujące pliki są po cichu ignorowane. Możesz wymusić błąd tylko przy użyciu typu filelist lub użyty sparametryzowany atrybut 'file`.

    Dlatego co chcesz użyć jest:

    <copy todir="my_dir" file="foo" /> 
    
    <copy todir="my_dir" flatten="true"> 
        <filelist dir="" files="foo" /> 
    </copy> 
    
    <copy todir="my_dir" flatten="true"> 
        <filelist dir=""> 
        <file name="foo" /> 
        <file name="bar" /> 
        <file name="zed" /> 
        </filelist> 
    </copy> 
    
Powiązane problemy