在几个地方已经说过“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
答案 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