我有一個運行測試的Ant腳本,然後將我的應用程序部署到QA服務器。要部署應用程序,它首先調用sun-appserv undeploy
,由於各種原因應用程序可能會或可能不會被部署。如果應用程序未部署,則取消部署失敗,整個腳本將暫停。如果一個任務失敗,繼續執行ant腳本
有什麼方法可以容忍一個任務的失敗,記錄它,讓腳本的其餘部分運行?
我有一個運行測試的Ant腳本,然後將我的應用程序部署到QA服務器。要部署應用程序,它首先調用sun-appserv undeploy
,由於各種原因應用程序可能會或可能不會被部署。如果應用程序未部署,則取消部署失敗,整個腳本將暫停。如果一個任務失敗,繼續執行ant腳本
有什麼方法可以容忍一個任務的失敗,記錄它,讓腳本的其餘部分運行?
AntContrib嘗試捕捉:
<trycatch>
<try>
<!-- do deployment getting return code -->
</try>
<catch>
<!-- echo the return code with a message -->
</catch>
</trycatch>
Exec任務有,你可以設置爲false繼續下去一個failonerror屬性。
見-keep-going
選項記錄here
我正在尋找類似的東西,並找到了一種替代方法,如果你想運行很多沒有依賴關係的任務,並且想知道是否所有5個任務都失敗了,修復第一個。
附上所有的任務與經緯並行任務設置爲1,這絕對是一個錯誤使用的並行任務,但是完成我的目標:
<parallel threadCount="1">
<fail message="fail 1"/>
<fail message="fail 2"/>
<echo message="Success"/>
<fail message="fail 3"/>
</parallel>
在目標運行此給出了這樣的輸出:
test:
[echo] Success
BUILD FAILED
C:\test\build.xml:5:
fail 1
fail 2
fail 3
Total time: 0 seconds
似乎ant-contrib try/catch對必須包含在標記中。 –
Leynos
我同意並修改了我的答案。 –