web-dev-qa-db-ja.com

Mavenの「リアクター」とは何ですか?

私はMavenリアクターについて読んでいますが、その用語の使用法に混乱しています。マルチモジュールはリアクターであり、Mavenリアクターを操作でき、リアクターはプラグインであると読みました。リアクターとは正確には何ですか?

95
harschware

リアクターは、一連のモジュールで目標を実行できるようにするMavenの一部です。 Maven 1.xで述べたように、 マルチモジュールビルドに関するドキュメント (Maven 1.xにはリアクターコンセプトが既に存在していました)、モジュールは作業、それらを同時に構築するためにリアクターを使用して収集することができますおよび:

リアクターは、各プロジェクトによってそれぞれのプロジェクト記述子に記述された依存関係から正しいビルド順序を決定し、その後、記述された一連の目標を実行します。プロジェクトの構築とサイト生成などの他の目標の両方に使用できます。

説明したように、リアクターはマルチモジュールビルドを可能にします:モジュール間の依存関係の有向グラフを計算し、このグラフからビルド順序を導出します(そのため、循環依存関係は許可されません。モジュール。つまり、「multi-modules build」は「reactor build」および「reactor build」は「multi-modules build」。

Maven 2.xでは、マルチモジュールビルドのサポートが大幅に改善され、Mavenユーザーに対してリアクターが透過的になりました。しかし、それはまだそこにあり、ボンネットの下で使用されます。

2008年9月(つまり、Maven 2のロールアウト後の長い時間)に reactor plugin が作成され、Mavenリアクターとより密接に(再び)対話できるようになりました。 Brett Porterが Reactor:My New Favourite Maven Plugin でブログに書いています。

ほとんどのリアクタプラグイン機能はネイティブにサポートされています(Maven 2.1.0以降)。 Mavenのヒントとコツ:高度なリアクタオプション を参照してください。

151
Pascal Thivent

Reactorは、プロジェクトにマルチモジュールがある場合に使用されます。

リアクターによって行われる作業は次のとおりです。

  • モジュールの詳細を収集する
  • 依存関係に基づいた順序の並べ替え
  • プロジェクトを順番にビルドします

Maven 2.1リリースから、Mavenがマルチモジュールプロジェクトをビルドする方法を操作できる新しいMavenコマンドラインオプションが追加されました。これらの新しいオプションは次のとおりです。

-rf, --resume-from
    Resume reactor from specified project
-pl, --projects
    Build specified reactor projects instead of all projects
-am, --also-make
    If project list is specified, also build projects required by the list
-AMD, --also-make-dependents
    If project list is specified, also build projects that depend on projects on the list  

ソース

6
Premraj