1

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

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

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

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

4

2 回答 2

8

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

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

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

your_task.invoke

完整的文档在这里

于 2009-01-20T20:46:13.283 回答
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提交的答案,它帮助了我,并且对我遇到的另一个问题非常有用。

于 2009-01-21T14:07:22.793 回答