我正在使用Rake来编译一些烦人的LaTeX东西。
事实上,我想在之前清理我的工作目录,在编译之后
所以我定义了两个任务::clean
和:compile
。
天真地,我写了这个:
task :default => [:clean, :compile, :clean]
但是,正如我稍后在阅读Rake的文档时发现的那样,这不起作用,因为任务数组包含依赖项,而不是要执行的操作。
那么,有没有一种干净的方法来执行一系列任务而无需用Rake::Task("clean")
等手动调用它们?
类似于依赖项数组的东西。
答案 0 :(得分:0)
只需定义您的依赖项并依靠rake来确定有效的订单。当然,多次执行:clean任务会有一点麻烦,但您可以reenable或使用alias。或者你可以定义
def clean
...
end
task :default => [:clean_after_compile]
task :clean_after_compile => [:compile] do clean end
task :compile => [:clean_before_compile]
task :clean_before_compile => [:compile] do clean end
为了保持一点干燥。由于rake处理的是依赖关系而不是序列,因此它可能比你喜欢的工作更多。