4

プラグインをインストールしたいのですが、不要なものがたくさんインストールされるのではないかと心配しています。rake がインストール手順を取得するファイルを調べて、不要なものを削除したいと思います。

これがRakefileだと思います。しかし、rake が rakefile を調べたときに何が起こるかわかりません。rakefile 全体を実行するのか、それともこの「インストール」手順に関連するものとして指定された rakefile の一部だけを実行するのか?

4

3 に答える 3

3

rake ファイルはタスクの集まりです。引数 (この場合は install) を指定して rake を呼び出すと、そのタスクが実行されます。(Java 出身の場合は ant に似ています)

いいえ、「rake + task」を呼び出すと、rake は rakefile 全体を実行するのではなく、選択したタスクのみを実行します。タスクには依存関係がある場合があることに注意してください (たとえば、「テスト」タスクは、テストを実行するためのフォルダーやものを作成するなど、他の以前のタスクに依存する場合があります)。

最後に、他のユーザーが指摘する rake ユーザー ガイドは便利ですが、もっと楽しく読むことをお勧めします。こちら -> Ruby on Rails Rake チュートリアル

于 2009-06-11T21:55:22.000 に答える
1

Rake は、Rakefile がターゲット依存関係で構成されるという点でMakeと同じようにセットアップされます。これは通常の Ruby スクリプトとは異なり、Rake は要求されたターゲットから開始し、ターゲット自体を実行する前にその依存関係を再帰的に実行します。

したがって、インストールは次のようになります。

task :install => :stage do 
    # stuff to do
end

ここで、ターゲットはinstallタスクであり、 と呼ばれる他のタスクに依存していますstage

を実行するinstallには、Rake は最初に の依存関係を実行しstage(存在する場合)、次にstageを実行し、最後に を実行する必要がありinstallます。いいえ、ファイル全体を実行するのではなく、要求したターゲットを安全に実行するのに十分なだけです。

Rake はファイル ターゲットもサポートしています。

file 'foo.html' => 'bar.xml' do |t|
    # Build foo.html from bar.xml, however that is done
end

Makeを知っているなら、これはおなじみのようです。Rake はまずbar.xml何かに依存しているかどうかをチェックし、依存している場合はそれを実行します。次に、bar.xmlが よりも新しい場合foo.html、Rake はこのファイル タスクを実行します。が新しい場合foo.html、Rake は既にビルドされていると見なし、スキップします。

詳細については、Rake の機能を知りたい場合は、 Rake ユーザー ガイドを開始するのに適しています。

于 2009-06-11T21:49:02.437 に答える
0

プラグインが「不要」なものをインストールするのはなぜですか?

しかし、あなたの懸念が正当であると仮定すると、プラグインをインストールして調査を行い、満足できない場合は、ソース管理システムを使用してプリインストールされたバージョンに戻すことはできませんか? ソース管理を使用していない場合、これは始めるのに最適な口実かもしれません...

于 2009-06-11T22:41:02.313 に答える