2012-09-21 67 views
8

必須有一個簡單的設置,我錯過了,所以請原諒我,但我已經注意到有兩次我的不良螞蟻任務不會導致構建失敗。例如:即使Ant任務失敗,Ant仍然成功

  1. 螞蟻副本時,源文件不存在... BUILD SUCCESSFUL

  2. 螞蟻解壓縮,當任務報告「不能寫入文件」或類似的消息...... BUILD SUCCESSFUL

  3. 螞蟻EXEC錯誤,無效的語法...... BUILD SUCCESSFUL

如何保證將導致所有Ant任務的錯誤在構建失敗?

+0

許多任務參數來開啓/關閉「failonerror」因爲有時你並不想構建失敗的任務。檢查文件並仔細查看參數表。 – coolcfan

+1

@coolcfan,它應該總是失敗,除非另有指示,EXEC默認爲false是一個錯誤。我認爲我的COPY和UNZIP問題與嘗試直接運行ant-launcher.jar有關。 ( – cmcginty

+0

)我添加了failonerror =「true」,Ant仍在繼續構建,在這個程序中,「fail early fail often」在哪裏? –

回答

4

你試過以下:

<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

複製默認爲failonerror =「true」,甚至手動設置它不會產生失敗。無論如何, – cmcginty

+0

複製任務不起作用,因爲failureOnError默認設置爲true。 –

7
  • <EXEC>任務就默認情況下沒有失敗。您需要啓用此功能failonerror="true"

  • 螞蟻<COPY>任務的失敗取決於使用的資源集合類型。如果您使用filesetpatternset,則所有丟失的文件都是,並且默默忽略。只能使用filelist類型強制失敗,或者使用參數化的'file`屬性。

    因此你要使用的是兩種:

    <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>