0

我正在使用 rake 0.8.7

我想运行一个简单的 rake 任务来解压缩一个名为 pma.zip 的文件

这是我的任务

task :unzip_pma do
  file "pma.txt" => "pma.zip" do
    sh "unzip pma.zip"
  end
end

pma.txt 应该是 pma.zip 解压缩到的文件。即pma.txt的创建依赖于pma.zip的存在。

但是,当我运行 rake unzip_pma 时,没有进行解压缩,所以我的猜测是我的语法不正确。

rake unzip_pma -t -v
(in /Users/abdfadf/Desktop)
** Invoke unzip_pma (first_time)
** Execute unzip_pma

问题 1. 我做错了什么。
问题 2. 有没有什么方法可以获得比我在 rake 命令上运行跟踪时看到的更有意义的输出?

谢谢!

4

1 回答 1

2

生成文件的名称任务名称。然后,您可以将该任务名称作为依赖项提供给另一个任务。尝试像这样定义您的 rake 任务:

file "pma.txt" => "pma.zip" do
  sh "unzip pma.zip"
end

task :unzip_pma => "pma.txt" do
  # Other actions can go here...
end

在您的 rakefile 中使用上述内容,您也可以运行:

rake pma.txt

如果您想强制一个任务在另一个任务中运行(而不是使用依赖规则),请使用Rake::Task[:the_other_task].invoke

于 2010-12-13T22:48:26.027 回答