Evitar erros de teste em " mvn-site com o objetivo de ROMA, a dependência e a cobertura-maven-plugin
-
02-01-2020 - |
Pergunta
Em um Maven projeto com base em alguns dos testes JUnit falhar, mas apenas durante um Maven site de compilação.Quando a execução de
mvn clean package
passar em todos os testes.Mas ao executar:
mvn clean site
alguns dos testes de gerar a mensagem:
Não pôde inicializar a classe org.jdom2.entrada.sax.XMLReaders
Esses erros ocorrem em uma classe que usa ROMA para analisar os dados de RSS.Para isso, o projeto tem uma dependência em ROMA (com.rometools:roma:1.5.0), que em si tem uma dependência no JDOM 2.0.2.
Os erros não acontecem quando a ROMA dependência ainda não estava incluído no projeto.
O Maven site de configuração inclui a cobertura-maven-plugin.Este também tem uma dependência no JDOM, através de Jaxen:jaxen:jaxen:1.0 -> jdom:jdom:1.0
Eu acho que ao executar o site da gol o JDOM versão 1.0 é usado pela classe sob teste, fazendo com que os erros de ROMA de biblioteca porque ele usa o incorreto JDOM versão.
Eu não sei como configurar o projeto para usar JDOM 1.0 somente na Cobertura do plugin.Alguém sabe uma maneira de fazer isso e fazer os testes executados com êxito durante o objetivo do site?
Solução
O problema foi resolvido pela definição de um valor de sistema durante o arranque do programa:
System.setProperty("javax.xml.parsers.SAXParserFactory",
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
Fonte: JDOM2:Este analisador não suporta a especificação de "nulo" versão "null"