【问题标题】:How can I modify/extend a rake file from another rake file?如何从另一个 rake 文件修改/扩展一个 rake 文件?
【发布时间】:2009-01-20 11:45:12
【问题描述】:

我正在尝试找到一种方法来修改/扩展另一个 RakeFile 中的 RakeFile,而无需实际更改它。

当我运行我的 rake 任务时,我从 SVN 中检索了一个包含 rakefile 的解决方案。我想:

  1. 更改此 rakefile 中的变量。
  2. 向这个 rakefile 添加一个新任务 它利用了现有的任务。
  3. 执行新任务。

我希望这样做最好不要实际修改磁盘上的原始 RakeFile。

【问题讨论】:

    标签: ruby build rake


    【解决方案1】:

    这是一种在执行任务之前运行任意代码的方法。

    your_task = Rake::Task['task:name']
    your_task.enhance { this_runs_before_the_task_executes }
    

    您可以类似地执行 rake 任务。

    your_task.invoke
    

    完整文档here

    【讨论】:

    • enhance 实际运行块中的代码之后任务执行
    【解决方案2】:

    这是我最终用来解决我遇到的特定问题的代码。

    Dir.chdir File.dirname(__FILE__) + '/their_app'
    load 'RakeFile'
    
    # Modify stuff from original RakeFile
    COMPILE_TARGET = "release"
    
    # Add my task
    task :my_task =>[:my_pre_task, :their_task]
    

    我不知道这是否是正确的方法,如果有人知道更好的方法,我将不胜感激 cmets/edits。

    感谢leethal 提交了answer,它帮助了我,并且对我遇到的另一个问题非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2017-09-16
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多