2008-05-11

rake 简略教程

本文的例子来源于Ruby on Rails Rake Tutorial

Rake是make衍生出来的一个工具。
像make一样,它需要一个Rakefile的文件来做为默认的任务定制文件。在这个文件里可以指定一些任务,由rake来解释执行。

task :purchaseAlcohol do
  puts "Purchased Vodka"
end
 
task :mixDrink do
  puts "Mixed Fuzzy Navel"
end
 
task :getSmashed do
  puts "Dood, everthing's blurry, can I halff noth'r drinnnk?"
end


然后,想make一样,在执行rake时,后面加上任务的名字
$ rake purchaseAlcohol
 Purchased Vodka
 
$ rake mixDrink
 Mixed Fuzzy Navel
 
$ rake getSmashed
 Dood, everthing's blurry, can I halff noth'r drinnnk?



在高深一点儿就是,制定任务的顺序,也就是依赖性
task :purchaseAlcohol do
  puts "Purchased Vodka"
end
 
task :mixDrink => :purchaseAlcohol do
  puts "Mixed Fuzzy Navel"
end
 
task :getSmashed => :mixDrink do
  puts "Dood, everthing's blurry, can I halff noth'r drinnnk?"
end


要得到当前的Rakefile里面的任务列表很简单
rake -tasks
rake -T


看到这里也许你会想起在rails里面做数据的migrate的时候,很多task都有一个前缀,像
rake db:create:all


这里解释一下,db是一个命名空间(namespace),也就是对一些任务进行分组。
namespace :alcoholic do
  desc "This task will purchase your Vodka"
  task :purchaseAlcohol do
    puts "Purchased Vodka"
  end
 
  desc "This task will mix a good cocktail"
  task :mixDrink => :purchaseAlcohol do
    puts "Mixed Fuzzy Navel"
  end
 
  desc "This task will drink one too many"
  task :getSmashed => :mixDrink do
    puts "Dood, everthing's blurry, can I halff noth'r drinnnk?"
  end
end

Rake 的文档和例子 http://docs.rubyrake.org/
评论
发表评论

您还没有登录,请登录后发表评论

magixyu
搜索本博客
我的相册
6094f4dd-25cb-3e9a-ba83-0f5e59d1f616-thumb
android
共 3 张
最近加入圈子
存档
最新评论