我是耙子的新手,所以可能有一个简单的解释。我想创建一些目录并在一些文件中复制一个简单的安装脚本,例如。
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命令没有该目录。
我是否误解了目录指令应该做什么?
答案 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文件创建任务的默认任务。我感到愚蠢。