Korzystanie z resultproperty
i failonerror
atrybuty zadania exec
, np:
<target name="CheckState">
<exec executable="${App.path}"
resultproperty="App.state"
failonerror="false"/>
<echo message="App state was: ${App.state}" />
</target>
Cytowanie od exec
docs zadaniowych błędy i kody powrotu:
Domyślnie kod powrotu exec jest ignorowany; po ustawieniu wartości failonerror = "true", jakikolwiek zwrotny błąd sygnalizacji (zależny od systemu operacyjnego) powoduje niepowodzenie kompilacji. Alternatywnie można ustawić wartość wyniku na nazwę właściwości i przypisać ją do kodu wyniku (blokowanie niezmienności kursu ).
Jeśli próba uruchomienia programu niepowodzeniem z kodem błędu zależny od systemu operacyjnego, następnie zatrzymuje build chyba failifexecutionfails jest ustawiona na false. Możesz użyć tego do uruchomienia programu, jeśli istnieje, ale poza tym nic nie rób.
Co oznaczają te kody błędów? Cóż, są zależne od systemu operacyjnego. Na pudełkach Windows należy zajrzeć do dokumentacji ; kod błędu 2 oznacza "nie ma takiego programu", co zwykle oznacza, że nie znajduje się na ścieżce. Za każdym razem, gdy widzisz taki błąd z dowolnego zadania Ant, jest to zwykle , ale nie jest to błąd Ant, ale jakiś problem konfiguracyjny na twoim komputerze.
Dzięki. To działa! Próbowałem outputproperty i errorproperty, ale nie widziałem valueProperty. – Hyden
Czy właściwość fork jest ustawiona na true? Według O'Reilly's _Ant: The Definitive Guide_, resultproperty zadziała tylko wtedy, gdy failonerror jest fałszywe _i_ fork jest prawdziwe. Widelec wydaje się być atrybutem elementu Java. –
@Jamil Nie podążam za mną. Widelec jest niejawny w exec - nie trzeba go określać. –