我目前正在考虑使用Rake来部署我的项目,而且我正在学习Ruby / Rake。但有人可以向我解释常规任务和文件任务?这一点不断被提及,但我不知道两者之间的区别,我找不到定义?
答案 0 :(得分:2)
Martin Fowler对这些功能进行了很好的解释。
文件任务
我上面谈到的任务与蚂蚁中的任务类似。 Rake还支持一种稍微不同的任务,称为文件任务,它更接近于make中的任务概念。这是另一个从我的网站rakefile稍微简化的例子。
file 'build/dev/rake.html' => 'dev/rake.xml' do |t| require 'paper' maker = PaperMaker.new t.prerequisites[0], t.name maker.run end
对于文件,您指的是实际文件而不是任务名称。因此'build / dev / rake.html'和'dev / rake.xml'是实际文件。 html文件是此任务的输出,xml文件是输入。您可以将文件任务视为告诉构建系统如何制作输出文件 - 事实上这正是make中的概念 - 您列出了您想要的输出文件并告诉他们如何制作它们。
答案 1 :(得分:2)
Here:
FileTask是一个包含基于时间的依赖项的任务。如果任何FileTask的先决条件的时间戳晚于此任务所代表的文件,则必须重建该文件(使用提供的操作)。
答案 2 :(得分:0)
文件任务检查“任务文件”和先决条件的创建日期。
示例:
task 'xx.txt' => 'xx.dat' do
p :x
end
始终执行 xx.txt
。
file 'xx.txt' => 'xx.dat' do
p :x
end
xx.txt
只有在xx.dat
比xx.txt
更年轻(或xx.txt
尚不存在)时才会执行
在这两种情况下,文件(或任务)xx.dat
必须存在。