1

実際に変更せずに、別のRakeFileからRakeFileを変更/拡張する方法を見つけようとしています。

rakeタスクを実行すると、rakefileを含むSVNからソリューションを取得します。したい:

  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 }

同様にレーキタスクを実行できます。

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 に答える