ホームページ > Java > &#&チュートリアル > Java/Maven で「Xerces Hell」を回避するにはどうすればよいですか?

Java/Maven で「Xerces Hell」を回避するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-20 04:23:01
オリジナル
318 人が閲覧しました

How to Avoid

Java/Maven で「Xerces Hell」に対処する?

背景

Java エコシステムで広く使用されている XML パーサーである Xerces は、重大な問題を引き起こす歴史的要因とパッケージングの問題による課題。公式の Xerces バイナリにはバージョン管理が不足しており、プロジェクトは正式に Maven Central にアップロードされていません。さらに、Xerces が複数の jar (xml-apis、xercesImpl) に分割されていることと、さまざまな関係者によるさまざまなバージョン管理の実践が問題を複雑にしています。これにより、Maven 環境で Xerces を使用するときに競合とクラスローダーの問題が発生します。

問題

競合の解決

Maven は、同じアーティファクトの異なるバージョン間の競合を解決できません。さまざまな組織によって公開されているため、複数の Xerces 依存関係が含まれる状況が発生し、クラスパスが発生する可能性があります。

クラスローダー地獄

JAXP リファレンス実装とサーブレット コンテナの両方に Xerces を含めると、Maven 依存関係から競合する可能性のあるバージョンと組み合わせることで、複雑なクラスローディング シナリオが作成され、慎重な管理が必要になります。クラスローダーの競合を回避するruntime.

ソリューション

Xerces の依存関係を除外したり、提供されているものとしてマークしたりする試みは、サードパーティのライブラリとフレームワークの複数のエイリアスと依存関係により困難になる可能性があります。ただし、重要な開発が明らかになりました。

最近の更新

2013 年 2 月に、Maven Central のアップロードの問題を修正するために、Xerces ビルド スクリプトのパッチ適用済みバージョンがアップロードされました。 Xerces 2.11.0 JAR が Maven Central で利用できるようになり、長年のバージョン管理とパッケージ化の問題が解決されました。

この開発により、Maven プロジェクトでの Xerces 依存関係管理が大幅に簡素化されます。開発者は、次の依存関係宣言を使用して Xerces を正しく解決できるようになりました:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>
ログイン後にコピー

このソリューションにより、きめ細かい依存関係制御と複雑な階層型クラスロード メカニズムが不要になります。

以上がJava/Maven で「Xerces Hell」を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート