2009-01-20 81 views
1

我试图找到一种方法来修改/扩展RakeFile从另一个RakeFile实际上没有改变它。如何从另一个rake文件修改/扩展rake文件?

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

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

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

回答

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这帮助我的方式,并对我遇到的另一个问题非常有用。

7

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

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

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

your_task.invoke 

全文档here