2010-01-17 94 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