2010-09-30 85 views
3

我正在尋找我的nant構建腳本,以便在構建出錯時能夠自行清理。我正在尋找類似下面的執行:nant構建失敗後清理

Target= Software.Build 

Target= Software.Build.Success *(depends on Software.Build succeeding)* 

Target= Software.Build.Failed 

我要尋找一個解決方案,如果Software.Build目標失敗,那麼Software.Build.Failed將被執行例如以某種方式通過電子郵件發送構建失敗的人,否則將運行Software.Build.Success以允許構建腳本繼續。

這甚至可能與南特嗎?如果是這樣,任何人都可以指給我一個合適的文章/解決方案?

回答

4

NAntContribtrycatch task

<trycatch> 
    <try> 
    <call target="Software.Build" /> 
    </try> 
    <catch> 
    <call target="Software.Build.Failed" /> 
    <fail message="build failed" /> 
    </catch> 
    <finally> 
    <!-- execute everything that doesn't depend on success or failure --> 
    </finally> 
</trycatch> 
<call target="Software.Build.Success" /> 
+0

感謝您的簡潔的例子!我考慮編寫我自己的自定義任務,以允許我實現'callOnError'屬性來幫助簡化構建腳本,但是這樣做可能不需要在整潔的解決方案中過度使用! – 2010-10-04 08:57:42

+0

從版本0.92-rc1''是NAnt本身的一部分,而不是NAntContrib – 2013-06-24 10:29:28

6

或者,如果你有全局數據進行清理,您可以用惡性事件onFailure處。

<property name="nant.onfailure" value="failure" /> 
<target name="failure"> 
    <!-- Put your cleaning code in here --> 
</target>