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


105

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

回答:


164

reactorはMavenの一部であり、一連のモジュールで目標を実行できます。マルチモジュールビルドに関する Maven 1.xのドキュメントで述べたように(reactorの概念は既にMaven 1.xにありました)、モジュールは個別の作業単位です、reactorを使用してそれらをまとめて同時にビルドすると、次のことができます

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

説明したように、reactorはマルチモジュールビルドを可能にするものです。モジュール間の依存関係の有向グラフを計算し、このグラフからビルド順序を導き出します(これが循環依存関係が許可されない理由であり、これはとにかく良いことです)。モジュール。つまり、「マルチモジュールビルド」は「reactorビルド」であり、「reactorビルド」は「multi-modulesビルド」です。

Maven 2.xでは、マルチモジュールビルドのサポートが大幅に改善され、reactorはMavenユーザーに対して透過的になりました。しかし、それはまだそこにあり、内部で使用されています。

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

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


10
Mavenサイトでこのプラグインが「廃止された」と言われるのはなぜですか?
Mopparthy Ravindranath、2015

4
なぜなら、reactorプラグインは、実際のreactorと(だけ)「対話」するプラグインだからです。そのため、reactor自体は廃止されず、それに関連するプラグインが廃止されました。
Lonzak 2017年

8

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

reactorによって行われる作業は次のとおりです。

  • モジュールの詳細を収集する
  • 依存関係に基づく順序の並べ替え
  • プロジェクトを順番に構築する

2.1リリース以降、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  

ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.