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 サイトの他の関連記事を参照してください。