実際に変更せずに、別のRakeFileからRakeFileを変更/拡張する方法を見つけようとしています。
rakeタスクを実行すると、rakefileを含むSVNからソリューションを取得します。したい:
- このrakefileの変数を変更します。
- このrakefileに、既存のタスクを利用する新しいタスクを追加します。
- 新しいタスクを実行します。
できれば、ディスク上の元のRakeFileを実際に変更せずにこれを実行したいと思います。
タスクを実行する前に任意のコードを実行する方法は次のとおりです。
your_task = Rake::Task['task:name']
your_task.enhance { this_runs_before_the_task_executes }
同様にレーキタスクを実行できます。
your_task.invoke
完全なドキュメントはこちら。
これは、私が抱えていた特定の問題を解決するために最終的に作成したコードです。
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]
これが正しい方法であるかどうかはわかりません。より良い方法を知っている人がいれば、コメント/編集をいただければ幸いです。