rake - “directory”关键字如何工作?

时间:2011-12-22 23:57:23

标签: ruby rake rakefile

在几个地方已经说过“directory”关键字可以用作速记。显然,它可以表示为依赖关系,因此如果尚未存在,它将被创建。

http://onestepback.org/articles/buildingwithrake/directorydependencies.html

我们的想法是将目标目录指定为依赖项,而不是每次都尝试手动创建目标目录,这可以通过使用mkdir_p来实现。使用mkdir_p的缺点是,无论目录是否已存在,它都会显示输出。另一种解决方案是使此命令静音 - 如果仅在创建目录时显示输出,则更好。

我尝试使用“directory”关键字如下:


file "destFile" => ["srcFile", directory "myOutputDir"] do
    FileUtils.cp "srcFile" "myOutputDir/destFile"
end

file "destFile" => ["srcFile"] + [directory "myOutputDir"] do
    FileUtils.cp "srcFile" "myOutputDir/destFile"
end

file "destFile" => ["srcFile"] do
    directory "myOutputDir"
    FileUtils.cp "srcFile" "myOutputDir/destFile"
end

1 个答案:

答案 0 :(得分:1)

这个怎么样:

directory "myOutputDir"
file "myOutputDir/destFile" => ["srcFile", "myOutputDir"] do
  FileUtils.cp "srcFile" "myOutputDir/destFile"
end

我相信它应该被用作一个单独的任务,并像任何其他任务一样指定为依赖项。它与指定运行file的{​​{1}}任务基本相同,但操作是隐式的。语法在其他方面是相同的。

mkdir也会使所有子目录层都像这样:http://onestepback.org/articles/buildingwithrake/directorydependencies.html