Mavenプロジェクト間で複数の依存関係を共有するベストプラクティス方法は何ですか?複数のPOMファイル間で依存関係を共有する
私は、次の2つの可能なアプローチを考えることができます -
親POMファイルを作成し、依存関係のセットを使用している各プロジェクトで同じPOMファイルを使用しました。
依存関係を含むPOMファイルで新しいmavenプロジェクトを作成します。次に、共通の依存関係を必要とするすべてのプロジェクトでこのプロジェクトを参照します。
私はどちらを使うべきですか?
Mavenプロジェクト間で複数の依存関係を共有するベストプラクティス方法は何ですか?複数のPOMファイル間で依存関係を共有する
私は、次の2つの可能なアプローチを考えることができます -
親POMファイルを作成し、依存関係のセットを使用している各プロジェクトで同じPOMファイルを使用しました。
依存関係を含むPOMファイルで新しいmavenプロジェクトを作成します。次に、共通の依存関係を必要とするすべてのプロジェクトでこのプロジェクトを参照します。
私はどちらを使うべきですか?
IMOあなたの正確なユースケースに少し依存します。
オプション1は確かに良い方法ですが、すでに親プロジェクトがある場合、特にそれらの共有依存関係セットが複数ある場合は管理が難しくなります(複雑な場合複数の親の階層)。 オプション1のもう一つの欠点は、(AFAIK)継承された依存関係を除外することができないため、プロジェクトが親のpomを継承していれば、すべての依存関係を継承するしかありません。
この場合、オプション2は管理が簡単で、より明確で柔軟性があります。 POM型のMavenプロジェクトを作成し、必要に応じてこれに依存関係を追加します。このソリューションでは、特定の依存関係をPOMプロジェクトから除外することができます。これにより、このソリューションはより柔軟になります。
オプション1がうまくいきます - 私はそれをお勧めします。
もう少しです。 –
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Managementをご覧ください(親POMでは<dependencyManagement>
を使用してください)。
containment
対inheritance
という問題があるので、私はオプション2が良いと思います。
プロジェクト間で2つの依存性特性を共有する必要がある場合はどうなりますか?オプション1では単一の継承レベルに留まり、オプション2では柔軟性が向上します。
FWIW - ほとんどの例では、オプション1を使用しています。 – nwaltham