我已经通读了文档并查看了很多示例,但我对默认和名称空间并不清楚。 (使用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