2010-09-30 84 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>