2014-12-08 118 views
0

的目标执行从南特帮助页面(http://nant.sourceforge.net/release/latest/help/fundamentals/targets.html)的:秩序恶性

楠尝试执行目标在他们中从左至右出现 顺序取决于属性。这可能是一个目标 可以得到早期执行时较早的目标依赖于它:

<target name="A"/> 
<target name="B" depends="A" /> 
<target name="C" depends="B" /> 
<target name="D" depends="C,B,A"/

假设我们要执行目标D.从它的依赖属性,你可能会认为,第一个目标C,然后B和那么A执行 。错误! ,c取决于B和B依赖于A,所以第一A被 执行,则B,然后是C,最后D.

由于C依赖于B和B取决于A,应该不是取决于目标(D)的属性应该只有C?

如果我将取代取决于与“C”独自一人,这将是执行的顺序d的?它会改变以前的订单吗?

回答

1

随着如上例中规定的目标:

<target name="A" /> 
<target name="B" depends="A" /> 
<target name="C" depends="B" /> 
<target name="D" depends="C,B,A" /> 

如果执行D,执行的顺序将是ABCD。这是由于依赖关系链 - 依赖的目标必须在依赖它的目标之前执行。如果你只C取代的Ddepends属性,你说得对 - 的执行顺序仍是相同的。

然而,此示例突出显示的是,依赖关系可能不是,其执行顺序与depends属性中指定的顺序相同。例如,如果你只是有这些目标:

<target name="A" /> 
<target name="B" /> 
<target name="C" /> 
<target name="D" depends="C,B,A" /> 

和执行D,执行的顺序,现在将匹配depends属性的顺序 - 即CBAD