根据http://rake.rubyforge.org/files/doc/rakefile_rdoc.html,您可以创建一个接受参数并具有先决条件的任务:
task :name, [:first_name, :last_name] => [:pre_name] do |t, args|
Run Code Online (Sandbox Code Playgroud)
但是如果:pre_name是一个也接受参数的任务呢?将参数传递给它时的语法是什么:pre_name用作先决条件?
它实际上非常简单 - :pre任务将接收与原始任务相同的参数.您需要做的就是确保签名类似 - 例如,如果第一个任务收到:a,:b:前任务也需要接收它们.
在这里查看更多:rake with params
我没有直接的答案,但我确实有一个可能适合您的替代解决方案。我的 rake 任务都不使用参数。(我想我尝试使用参数,但无法让它们工作。)相反,我依赖 ENV 数组。因此,例如,我会将示例任务写为:
task :name =>:pre_name do
do_something_with_name(ENV['first_name'], ENV['last_name'])
end
Run Code Online (Sandbox Code Playgroud)
它将被调用为:
$ rake name first_name=John last_name=Smith
Run Code Online (Sandbox Code Playgroud)
ENV 数组数据也可用于 pre_name 任务。
| 归档时间: |
|
| 查看次数: |
2072 次 |
| 最近记录: |