有没有一种方法可以在不使用环境变量的情况下将命名参数传递给 Rake 任务?
我知道 Rake 任务可以接受两种格式的参数:
环境变量
$ rake my_task foo=bar
这将创建一个名为的环境变量foo
和价值bar
可以在 Rake 任务中访问my_task
by ENV['foo']
.
Rake 任务参数
$ rake my_task['foo','bar']
这传递了值foo
and bar
前两个任务参数(如果已定义)。如果my_task
被定义为:
task :my_task, :argument_1, :argument_2
then argument_1
会有价值foo
and argument_2
会有价值bar
.
你可以这样说:
rake some_task -- --arg=value
然后,在你的任务中,ARGV
will be
[ 'some_task', '--arg=value' ]
所以你可以使用选项解析器 http://www.ruby-doc.org/stdlib/libdoc/optparse/rdoc/classes/OptionParser.html(或其他一些选项解析器)来解压ARGV
就像任何旧的 CLI 脚本一样;看起来滑稽的--
有必要阻止 rake 尝试解析--arg=like
作为耙子开关。
使用标准环境变量方法可能会更好,它不像所有的方法那么难看--
这是将参数传递给 rake 任务的常用方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)