2010-12-13 68 views
0

我用耙子0.8.7简单的rake文件操作

我希望运行解压名为pma.zip

此文件一个简单的rake任务是我的任务

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.有什么方法可以获得比我在我的耙式命令上运行轨迹时看到的更有意义的输出?

谢谢!

回答

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