常规任务和正常任务之间的区别是什么?耙子中的文件任务

时间:2011-09-16 12:28:14

标签: ruby rake

我目前正在考虑使用Rake来部署我的项目,而且我正在学习Ruby / Rake。但有人可以向我解释常规任务和文件任务?这一点不断被提及,但我不知道两者之间的区别,我找不到定义?

3 个答案:

答案 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.datxx.txt更年轻(或xx.txt尚不存在)时才会执行

在这两种情况下,文件(或任务)xx.dat必须存在。