rakefile任务不接受第二个参数

问题描述 投票:0回答:2

我有一些来自我的rakefile的代码。很少有任务必须有多个参数。

desc 'confidential'
  task :task1, [:targetPrj, :arg1] do |t,args|
  args.with_defaults(:arg1 => "0")
  TARGET_PROJECT = args[:targetPrj]
  TEST_SW = args[:emcTest]
  makeApp(t)
end

如果我打电话给rake task1[TARGET _1]一切都很好,但如果我添加第二个参数rake task1[TARGET _1, 5]然后我得到:

Rake aborted!
Don't know how to build task task1[TARGET_1, '

我真的不知道出了什么问题?

ruby rake rakefile
2个回答
1
投票

参数应该用逗号分隔,不能有空格:

task1[TARGET_1,5]

0
投票

命令行参数由空格分隔,rake将每个参数视为单独的任务。这将运行任务foobar

rake foo bar

如果你有:

rake task1[TARGET_1, 5]

然后rake有两个参数:task1[TARGET_1,5]。尝试解析这些字符串会导致错误。

要获得正确的结果,可以删除空格,转义空格或将参数放在引号中:

rake task1[TARGET_1,5]
rake task1[TARGET_1,\ 5]
rake "task1[TARGET_1, 5]"

请注意,此行为不是特定于rake的,这就是命令行参数的一般工作方式。

© www.soinside.com 2019 - 2024. All rights reserved.