Maison  >  Article  >  Java  >  Comment échapper à « Xerces Hell » en Java/Maven ?

Comment échapper à « Xerces Hell » en Java/Maven ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 05:55:02255parcourir

How to Escape

Vous gérez "Xerces Hell" en Java/Maven ?

Xerces, un analyseur XML largement utilisé, est depuis longtemps une source de frustration pour les développeurs Java en raison de son historique de fichiers JAR non versionnés, du manque de versions officielles de Maven et de fichiers jar divisés (xml-apis et xercesImpl). Cela a conduit à des conflits de versions et à des problèmes de chargeur de classe.

Problèmes :

  • Résolution des conflits :Lors de l'utilisation d'un logiciel d'entreprise avec des proxys de référentiel, plusieurs versions de Xerces (par exemple, xml-apis) provenant de différentes organisations peuvent être ajoutées en tant que dépendances, ce qui entraîne des conflits que Maven ne peut pas résoudre en raison de différents identifiants de groupe.
  • Classloader Hell : Le JRE inclut Xerces dans le cadre de l'implémentation JAXP, mais sa version peut ne pas être compatible avec celle utilisée par des bibliothèques tierces ou des conteneurs de servlets. Cela peut entraîner des problèmes de chargement de classe au moment de l'exécution.

Solutions :

Lorsque vous marquez les dépendances Xerces comme ou peut aider, il est difficile à appliquer et peut ne pas être compatible avec tous les frameworks/bibliothèques.

Résolution centrale de Maven :

En février 2013, les JAR pour Xerces 2.11.0 et ses JAR sources ont été publiés sur Maven Central. Cela élimine le besoin de builds personnalisés et simplifie la gestion des dépendances.

Pour utiliser la version Maven Central :

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>

Améliorations futures :

Le L'équipe Apache Xerces a mis en ligne des scripts de build corrigés qui permettent le téléchargement automatisé de Maven Central, s'attaquant ainsi à la cause première de « l'enfer Xerces ». Cette amélioration devrait résoudre les problèmes de façon permanente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn