常规任务和常规任务有什么区别? Rake 中的文件任务

发布于 2024-12-05 03:00:23 字数 111 浏览 0 评论 0原文

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

I'm currently looking into using Rake to deploy my projects and I'm beavering away at learning Ruby/Rake. However can someone please explain to me the difference between Regular Tasks & File Tasks? This keeps getting mentioned but I have no idea the difference between the two and I can't find a definition?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若水般的淡然安静女子 2024-12-12 03:00:23

Martin Fowler 对这些功能写了一篇很好的解释。

文件任务

我上面谈到的任务与ant中的任务类似。 Rake 还支持一种稍微不同的任务,称为文件任务,它更接近 make 中任务的概念。这是另一个稍微简化的示例,来自我的网站 rakefile。

文件'build/dev/rake.html' => 'dev/rake.xml' 执行 |t|
  需要“纸”
  制造商=PaperMaker.new t.先决条件[0],t.name
  创客运行
结尾

对于文件,您指的是实际文件而不是任务名称。所以“build/dev/rake.html”和“dev/rake.xml”是实际文件。 html 文件是该任务的输出,xml 文件是输入。您可以将文件任务视为告诉构建系统如何生成输出文件 - 实际上这正是 make 中的概念 - 您列出所需的输出文件并告诉 make 如何生成它们。

Martin Fowler wrote a great explanation of these features.

File Tasks

The tasks I talked about above are similar to tasks in ant. Rake also supports a slightly different kind of task called a file task which is closer to the notion of tasks in make. Here's another example, slightly simplified, from my web site rakefile.

file 'build/dev/rake.html' => 'dev/rake.xml' do |t|
  require 'paper'
  maker = PaperMaker.new t.prerequisites[0], t.name
  maker.run
end

With a file you are referring to actual files rather than task names. So 'build/dev/rake.html' and 'dev/rake.xml' are actual files. The html file is the output of this task and the xml file is the input. You can think of a file task as telling the build system how to make the output file - indeed this is exactly the notion in make - you list the output files you want and tell make how to make them.

妖妓 2024-12-12 03:00:23

此处

FileTask 是一个包含基于时间的依赖关系的任务。如果任何 FileTask 的先决条件的时间戳晚于该任务表示的文件,则必须重建该文件(使用提供的操作)。

Here:

A FileTask is a task that includes time based dependencies. If any of a FileTask‘s prerequisites have a timestamp that is later than the file represented by this task, then the file must be rebuilt (using the supplied actions).

﹂绝世的画 2024-12-12 03:00:23

文件任务检查“任务文件”的创建日期和先决条件。

示例:

task 'xx.txt' => 'xx.dat' do
  p :x
end

xx.txt 始终执行。

file 'xx.txt' => 'xx.dat' do
  p :x
end

仅当 xx.datxx.txt 更年轻时才执行 xx.txt(或者如果 xx.txt > 尚不存在)

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

File task check the creation date of the 'task-file' and the prerequistes.

Example:

task 'xx.txt' => 'xx.dat' do
  p :x
end

xx.txt is executed always.

file 'xx.txt' => 'xx.dat' do
  p :x
end

xx.txt is only executed, if xx.dat is younger then xx.txt (or if xx.txt does not exist yet)

In both cases the file (or task) xx.dat must exist.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文