如何从另一个rake文件修改/扩展rake文件?

时间:2009-01-20 11:45:13

标签: ruby build rake

我正试图找到一种方法来修改/扩展RakeFile来自另一个RakeFile而不实际更改它。

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

  1. 更改此rakefile中的变量。
  2. 向此rakefile添加新任务 这利用了现有的任务。
  3. 执行新任务。
  4. 我希望这样做,而不是实际修改光盘上的原始RakeFile。

2 个答案:

答案 0 :(得分:7)

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

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

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

your_task.invoke

完整文档here

答案 1 :(得分:1)

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

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]

我不知道这是否是正确的做法,如果有人知道更好的方法,我会感谢评论/编辑。

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