2014-12-08 56 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