Empêcher les erreurs de test dans le but «Maven Site» avec la dépendance de Rome et le plug-in Cobertura-Maven

StackOverflow https://stackoverflow.com//questions/25088682

Question

Dans un projet basé sur Maven Certains des tests Junit échouent, mais uniquement pendant un site maven. Lors de l'exécution

mvn clean package

Tous les tests passent. Mais lors de l'exécution:

mvn clean site

Certains des tests génèrent le message:
ne pouvait pas initialiser la classe org.jdom2.input.sax.xmlreaders

Ces erreurs se produisent dans une classe qui utilise Rome pour analyser les données RSS. Pour cela, le projet a une dépendance à Rome (COM.ROMETOOLS: Rome: 1.5.0), qui a lui-même une dépendance sur JDOM 2.0.2.

Les erreurs ne se sont pas produites lorsque la dépendance de Rome n'était pas encore incluse dans le projet.

La configuration du site Maven comprend le plug-in Cobertura-Maven. Cela a également une dépendance sur JDOM, via JAXEN: JAXEN: JAXEN: 1.0 -> JDOM: JDOM: 1.0

Je pense que lors de l'exécution de l'objectif du site, la version JDOM 1.0 est utilisée par la classe sous test, ce qui entraîne les erreurs dans la bibliothèque de Rome, car elle utilise la version de JDOM incorrecte.

Je ne sais pas comment configurer le projet pour utiliser JDOM 1.0 uniquement dans le plug-in Cobertura. Est-ce que quelqu'un sait un moyen de faire cela et de faire fonctionner les tests au cours de l'objectif du site?

Était-ce utile?

La solution

Le problème a été résolu en définissant une valeur système pendant le démarrage du programme:

System.setProperty("javax.xml.parsers.SAXParserFactory",
    "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");

Source: JDOM2: Cet analyseur ne prend pas en charge la spécification "NULL" version "NULL"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top