rake目录命令无声失败?

时间:2013-06-19 12:53:11

标签: rake

我是耙子的新手,所以可能有一个简单的解释。我想创建一些目录并在一些文件中复制一个简单的安装脚本,例如。

task :default => ['mktd1', 'mktd2' ] do
end

task :mktd1 do
  mkdir "testdata"
  cp "x.tmp", "testdata/x.tmp"
end

task :mktd2 do
  directory "testdata1"
  cp "x.tmp", "testdata1/x.tmp"
end
只要testdata目录不存在,mkdir就可以正常工作,但是“目录”默默地失败(即什么都不做)导致rake中止,因为cp命令没有该目录。

我是否误解了目录指令应该做什么?

1 个答案:

答案 0 :(得分:1)

所以答案是我误解了rake应该如何工作。为了实现我想要的,我需要声明一个依赖于testdata1目录的任务。 e.g。

task :default => [ 'testdata1/x.tmp' ] do
end

directory "testdata1"

file "testdata1/x.tmp" => ["testdata1"] do
  cp "x.tmp", "testdata1/x.tmp"
end

这当然会创建一个依赖于testdata1目录的file_creation任务x.tmp,以及一个依赖于x.tmp文件创建任务的默认任务。我感到愚蠢。