rake
rakeファイルの書き方を必要そうなとこだけざっくり調べた。
タスク
- 引数の書式は下記の二通り
- 処理したいタスクの名前のString
- 処理したいタスク => 依存するタスクのハッシュ
- ブロック中の処理が実行される
- "default"のみ予約語。実行タスクが指定されない場合、defaultタスクが実行される
task "default" => "dist" task "dist" => ["init", "compile"] do puts "-- make distribution --" end task "init" do puts "-- initialize -- " end task "compile" do puts "-- compile --" end
ファイルタスク
ファイル生成に特化したタスクをファイルタスクという。書式はtaskメソッドの代わりにfileメソッドを使うくらいで後は同じ?
ファイルタスクは、依存先ファイルの更新日時を調べて、目的ファイルよりも新しくなっているときだけビルド作業を実施する。
CC = "gcc" task :default => "hello" file "hello" => ["hello.o", "message.o"] do |t| sh "#{CC} -o #{t.name} #{t.prerequisites.join(' ')}" end file "hello.o" => "hello.c" do |t| sh "#{CC} -c #{t.prerequisites[0]}" end file "message.o" => "message.c" do |t| sh "#{CC} -c #{t.prerequisites[0]}" end
タスクの説明
taskの直前にdesc "説明文"とすると説明が書ける
名前空間
namespaceメソッドで名前空間を定義。ネストも出来る。
namespace :client do namespace :web do desc "build Web client components" task :build do puts "build Web client components..." end end namespace :java do desc "build Java client components" task :build do puts "build Java client components..." end end end namespace :server do desc "build server components" task :build do puts "build server components..." end end