Maven Shade プラグインは、開発者が依存関係を含むアーティファクトを 1 つに結合できる強力なツールです。 、総合的な「uber jar」。これにより、デプロイメントと配布のプロセスが大幅に簡素化されます。
Uber Jars について
Maven エコシステムでは、通常、各アーティファクトには独自のクラスとリソースのみが含まれます。プロジェクトがビルドされると、Maven は指定された依存関係管理に基づいて必要なすべての依存関係 (JAR など) を見つけます。
対照的に、uber jar はすべての依存関係を 1 つの大規模な JAR に統合します。これにより、アプリケーションを実行するのに必要な JAR は多数の小さな JAR ではなく、1 つの大きな JAR だけで済むため、実行が簡素化されます。
Uber Jar を作成する理由
Uber jar にはいくつかの利点があります。
再配置(名前変更) パッケージ
uber jar の作成に加えて、Maven Shade Plugin は名前を変更することもできます「再配置」として知られる依存関係パッケージ。この手法により、依存関係の競合を解決し、モジュール性を向上させることができます。
シナリオ例
次のような仮定の状況を考えてみましょう:
これにより、依存関係の競合が発生します。Qux は、コードに Bar 2.0 の機能が必要なため、Bar 1.0 (Foo の依存関係) を使用できません。
これを解決するにはこの問題を解決するには、Foo ライブラリ開発者は Shade プラグインを使用して Bar の使用場所を変更できます:
そうすることで, Foo は別の場所に Bar の独自のコピーを持っているため、Qux は Foo の依存関係と競合することなく Bar 2.0 を安全に使用できます。 package.
Maven Shade プラグインを使用する場合
次のような場合には Maven Shade プラグインの使用を検討してください:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3