我已經通讀了文檔並查看了很多示例,但我對默認和名稱空間並不清楚。 (使用rake,版本10.0.3)Rake默認任務和名稱空間
首先,雖然我不記得明確地看到這一點,但無論定義了多少個,都只能有一個默認任務。顯然加載順序(PROJECT_NAME :: Application.load_tasks)決定了贏家。當我一直在努力建立一個命名空間的默認我發現,我有時覆蓋了一個Rails應用程序正常默認其中:
rake
默認運行測試。
首先這裏是「耙-T」命令:
$ rake -T a_name
rake a_name:a_task_1 # a_task_1
rake a_name:a_task_2 # a_task_2
rake a_name:b_name:b_task_1 # b_task_1
rake a_name:b_name:b_task_2 # b_task_2
rake a_name:default # This is hopefully a namespaced default
當我運行僅我希望是「默認」我得到的命名空間:
$ rake a_name
rake aborted!
Don't know how to build task 'a_name'
(See full trace by running task with --trace)
我期待這是爲了運行b_name命名空間中的b_task_1,因爲我已經聲明它是默認的
但是,如果我明確地指向單詞「default」,我會得到:
$ rake a_name:default
a_task_1
無論如何,我徹底困惑。誰能幫助澄清這對我來說...
namespace :a_name do
desc "a_task_1"
task :a_task_1 do
puts "a_task_1"
end
desc "a_task_2"
task :a_task_2 do
puts "a_task_2"
end
namespace :b_name do
desc "b_task_1"
task :b_task_1 do
puts "b_task_1"
end
desc "b_task_2"
task :b_task_2 do
puts "b_task_2"
end
end
desc "This is hopefully a namespaced default"
task :default => 'b_name:b_task_1'
end
你看到了嗎?這是一個稍微不同的方法,但它似乎工作http://stackoverflow.com/questions/1579231/default-task-for-namespace-in-rake – 2013-03-04 23:33:18