Maven 依存関係管理の主な利点はどれですか? サーバーにはバージョン管理された lib フォルダーがあり、各開発者はそのディレクトリを IDE にインポートして最新の状態に保つだけです。Maven はそれより簡単でしょうか?
6 に答える
プロジェクトごとのライブラリを使用するのは簡単な解決策のように思えますが、そうです。しかし、最終的には次のような問題が発生します。
- どこから来たのかどうやって覚えています
foo.jar
か? - ハッカーが改ざんしていない正当な情報源であると確信していますか?
foo.jar
正確にはどのバージョンですか?それは元のバージョンですか、それともパッチを当てたものですか?- あなたはそれでJavaDoc /ソースが欲しいですか?
foo.jar
必要なa.jar
もの、必要なy.jar
もの、必要なものz.jar
... 本当にすべてをダウンロードして個別に管理したいですか?- 2 番目のプロジェクトを開始します。これで、2 つのlib フォルダーが作成されました。jar をコピーしますか、それとも最初のプロジェクトから参照しますか?
- 2 番目のプロジェクトでは、1 つの JAR の異なるバージョンが必要です。これをどのように処理しますか?
foo.jar
次のバージョンにアップグレードしたいとします。Maven では、これは 1 分のタスクです。lib フォルダーの場合は、Web を検索し、JAR をダウンロードし、適切な場所に配置し、名前を変更し、古いバージョンを削除し、新しいバージョンを追加し、変更をコミットし、呪い、すべての依存関係に対して同じことを行うことを意味します。 ...- プロジェクトを他の人と共有したい。彼らはあなたのバージョンの JAR を必要としないかもしれません。Maven には、依存関係をオーバーライドするためのシンプルで効率的なメカニズムがあります。
- 最終的には、法務部門から、プロジェクトに互換性のないライセンスがないことを保証するように依頼されるでしょう。Maven は、すべての依存関係のすべてのライセンスのレポートを提供できます。
もちろん Maven は優れていますが、あなたのようなバージョン管理された lib フォルダーが少なくともよりシンプルに見える場合もあります。Maven メタデータを持たないライブラリを使用する場合は、Maven リポジトリに配置する前にいくつかの作業を行う必要があります (おそらく、そのようなものを配置するサーバーに 1 つの中央リポジトリが必要です)。
はい、できます!
"each developer just need to import that dir in the ide and keep it up to date"
Maven はこれを自動的に行います ;-)
また、継続的インテグレーションやその他の展開メカニズムを使用する場合にも大きな利点があります。一部の lib フォルダーを気にすることなく、任意の環境でプロジェクトを簡単にビルドできます。さらに、ビルド、デプロイ、コード分析などに関する多くのプラグインがあります。
Maven の依存関係管理のその他の利点:
- ほとんどのライブラリの Javadoc は簡単に入手できます
- ほとんどのライブラリのソース コードを簡単に入手できます (たとえば、何かをデバッグしたい場合に役立ちます)。
- コンパイル時、実行時、テスト時に、どの依存関係でどのjarが必要かを簡単に指定して分析できます。
次の利点は、Maven の依存関係を使用することによって得られます。
1. 一貫性: - Maven により、組織は一連のベスト プラクティスを標準化できます。Maven プロジェクトは標準モデルに準拠しているため、不透明ではありません。アメリカン ヘリテージ ディクショナリのこの用語の定義は、次の意味を完全に捉えています。
2. 再利用性: - Maven は再利用の基盤の上に構築されています。Maven を採用すると、業界全体のベスト プラクティスを効果的に再利用できます。
3. 敏捷性: - Maven は、ビルド ロジックだけでなくコンポーネントの再利用の障壁を下げます。Maven を使用すると、コンポーネントを作成してマルチプロジェクト ビルドに統合するのが簡単になります。開発者は、独自のカスタム ビルド システムに伴う急激な学習曲線を必要とせずに、さまざまなプロジェクト間を簡単に移動できます。
3. 保守性: - Maven を採用する組織は、ビルドのビルドを停止して、アプリケーションに集中することができます。Maven プロジェクトは、驚きが少なく、共通のモデルに従っているため、より保守しやすくなっています。
詳しい特典について知りたい方はこちら