2010-01-17 130 views
5

假設我有兩個頂層任務:rake任務訂購

task :publicBuild => [:zipSourceCode, :copyPrivateKey] 
task :internalBuild => [:copyPrivateKey] 

對於internalBuild任務,我不想壓縮源代碼 - 我只是想私鑰。但是對於publicBuild,我想要做到這兩點。但我需要保證對於publicBuildzipSourceCode任務在copyPrivateKey任務(我不希望源代碼ZIP包含公鑰)之前執行。

一個依賴如copyPrivateKey => zipSourceCode將無法​​正常工作,因爲這意味着對於internalBuild,它會調用zipSourceCode,這是我不想要的。

我想告訴耙子是「如果這兩個任務要執行,你應該先做這個,但它們都是可選的」。這可能嗎?

+3

它不會按照您在數組中指定的順序運行它們嗎?這是令人驚訝的,因爲數組在Ruby中是有序的......而且我無法在網絡中找到任何這樣的問題,這同樣令人驚訝,因爲看起來完全不合理,沒有其他人會遇到這個問題...... – tfwright 2010-01-17 22:14:03

+0

它按順序運行它們 - 我只是沒想到我可以依靠這個順序。也許我應該更徹底地閱讀文檔。謝謝! – 2010-01-17 22:22:31

回答

4

正如弗洛伊德所說......任務應該按照它們出現在依賴數組中的順序執行。

+1

...只要':zipSourceCode'不依賴於依賴':copyPrivateKey'的任務。這會導致它們在Rake解決依賴關係時以錯誤的順序運行。 – 2010-01-25 22:41:48

+0

啊是的。真正。感謝詹姆斯:) – 2010-01-26 13:23:40