Rake 入门指南
使用 Rake 实现任务自动化
利用rake来执行任务,实现自动化还是很有趣的
Rake会在当前路径下寻找名叫Rakefile、rakefile、RakeFile.rb和rakefile.rb的ruby文件
#为三个任务定义一个叫做home的命名空间,避免和其他的命名冲突,此时调用就必须用rake home:task2namespace :home do
desc "任务1 -- 刷牙"task :task1 doputs "开始刷牙吧"end
desc "任务2 -- 吃饭"#任务2依赖于任务1,执行2时会先执行1,依赖多个任务可以用这种格式 task :task_name => [:depends_on_taskA, :depends_on_taskB] dotask :task2 => :task1 doputs "吃饭了"end
desc "任务3 -- 洗脸"task :task3 doputs "洗把脸吧"end
end
#在一个任务中调用另外一个任务,rake today,不加命名空间就直接调用了desc "起床任务"task :today doRake::Task["home:task2"].invokeRake::Task["home:task3"].invokeend
#利用环境变量,可以传一个叫title的值desc "传值测试"task :testArg doputs "something test"puts ENV["title"]end
#传两个值,格式为rake bash2[aaa,bbb],输出结果 {:a=>"aaa", :b=>"bbb"}desc "passing 2 parameters to rake task"task :bash2, [:a, :b] do |t,args| args.with_defaults(:a => 'ccc', :b => 1) #设置默认值 puts args.inspectend
#传参方式,rake bash3[22] 这里会输出传的参数 22desc "再来测试一下"task :bash3, :par1 do |t, args| puts args[:par1]end
#设置默认的task,执行rake是会执行today的任务task :default => [:today]