Evitar errores de prueba en el objetivo de 'sitio de Maven' con la dependencia de Roma y Cobertura-Maven-Plugin
-
02-01-2020 - |
Pregunta
En un proyecto basado en Maven, algunas de las pruebas JUnit fallan, pero solo durante una construcción de sitios Maven. Al ejecutar
mvn clean package
TODAS LAS PRUEBAS PASE. Pero al ejecutar:
mvn clean site
Algunas de las pruebas generan el mensaje:
no pudo inicializar la clase org.jdom2.input.sax.xmlReders
Estos errores se producen en una clase que utiliza Roma para analizar los datos RSS. Para esto, el proyecto tiene una dependencia de Roma (com.Rometools: Roma: 1.5.0), que en sí misma tiene una dependencia de la JORDA 2.0.2.
Los errores no sucedieron cuando la dependencia de Roma aún no estaba incluida en el proyecto.
La configuración del sitio Maven incluye el plugin Cobertura-Maven. Esto también tiene una dependencia de la JAGER, A TRAVÉS DE JAXEN: JAXEN: JAXEN: 1.0 -> JORM: JDOM: 1.0
Creo que al ejecutar el objetivo del sitio, la clase de JIGR 1.0 es utilizada por la clase bajo prueba, lo que provoca los errores en la biblioteca de Roma porque utiliza la versión de jamón incorrecta.
No sé cómo configurar el proyecto para usar JDOR 1.0 solo en el complemento Cobertura. ¿Alguien sabe una manera de hacer eso y hacer que las pruebas se realicen correctamente durante el objetivo del sitio?
Solución
El problema se resolvió estableciendo un valor del sistema durante el inicio del programa:
System.setProperty("javax.xml.parsers.SAXParserFactory",
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
Fuente: jdom2: este analizador no admite la versión "null" de la versión "null"