Maven を使用して Java で Xerces 地獄の危険を回避する
Java 開発者として、悪名高い「Xerces 地獄」に対処すると、多くの場合、次のような問題が発生する可能性があります。フラストレーションと数え切れないほどのデバッグ時間。この問題は、Java エコシステムで広く使用されている XML パーサーである Xerces の複雑な歴史と、その Maven 依存関係の断片化された性質によって発生します。
問題の根本を理解する
初期の頃、Xerces は Maven のリリースプロセスに従わず、明確なバージョンを Maven に割り当てませんでした。人工物。さらに、Xerces を 2 つの jar (xml-apis と xercesImpl) に分割し、アップロードされたバージョンにバリエーションがあるため、Maven 依存関係の解決で競合が発生しました。
問題を複雑にしているのは、サーブレット コンテナが独自のライブラリに Xerces をバンドルしていることがよくあります。クラスパスの衝突が発生する可能性があります。さらに、JRE には Java API for XML Processing (JAXP) を介したバージョンの Xerces が含まれており、競合の可能性がさらに高まります。
Xerces Hell の結果
一貫性のあるバージョンと依存関係が欠如する可能性がありますin:
問題への対処
除外または提供を通じてすべての Xerces 依存関係を厳密に制御することは、特に難しい場合があります。大規模なソフトウェア プロジェクトで。さらに、サードパーティのライブラリは、特定の JRE で JAXP によって提供される Xerces バージョンと互換性がない可能性があります。
解決策: Maven Central Xerces Jars の活用
最近の開発Xerces 地獄問題の解決策を提供しました。 2013 年 2 月 20 日の時点で、xercesImpl や xmlApis を含む Xerces のバージョンが Maven Central で利用できるようになりました。
たとえば、Maven POM に次の依存関係を含めると、すべての競合が解決され、公式の Xerces 実装:
<dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.11.0</version> </dependency>
一元管理されたXerces アーティファクトを使用すると、開発者は複数のバージョンを維持したり競合を解決したりする複雑さを回避できます。提供されるバージョンの統一性により、プラットフォームやフレームワーク間の互換性が確保されます。
以上がMaven を使用して Java の「Xerces 地獄」から脱出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。