【问题标题】:rakefile task does not accept second parametersrakefile 任务不接受第二个参数
【发布时间】:2019-08-10 04:15:01
【问题描述】:

我的 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


    【解决方案1】:

    参数之间用逗号分隔不带空格

    task1[TARGET_1,5]
    

    【讨论】:

      【解决方案2】:

      命令行参数由空格分隔,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 的,这就是命令行参数的一般工作方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        • 1970-01-01
        • 2017-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多