Cómo vencer el "Xerces Hell" en proyectos Java/Maven
¡Hola a todos! Soy un desarrollador Java principiante y ya llevo dos semanas luchando con un problema que en internet llaman "Xerces Hell".
Tenemos un gran proyecto Maven (Spring Boot + Hibernate). De repente, al ejecutar las pruebas, empezaron a fallar errores como:
```
java.lang.NoSuchMethodError: org.apache.xerces.impl.dv.util.Base64.(Ljava/lang/String;)V
```
o
```
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
```
Además, en algunos módulos el código funciona, en otros no. Agregué la dependencia xerces explícitamente en el pom.xml, pero solo empeoró las cosas. Ahora tengo en el classpath dos clases diferentes org.apache.xerces.jaxp.SAXParserImpl — una de la librería xercesImpl, otra de xml-apis.
Intenté excluir dependencias transitivas mediante — ayudó parcialmente, pero no por completo. Al final, la aplicación solo funciona si elimino manualmente los archivos jar del repositorio local de Maven.
Díganme, ¿cómo resolver correctamente este problema? ¿Qué es "Xerces Hell" y cómo se evita?