防止'中的测试错误;mvn站点';罗马依赖和cobertura maven插件的目标
在基于Maven的项目中,一些JUnit测试失败,但仅在Maven站点构建期间失败。执行时防止'中的测试错误;mvn站点';罗马依赖和cobertura maven插件的目标,maven,cobertura,maven-site-plugin,jdom-2,Maven,Cobertura,Maven Site Plugin,Jdom 2,在基于Maven的项目中,一些JUnit测试失败,但仅在Maven站点构建期间失败。执行时 mvn clean package 所有测试都通过了。但在执行时: mvn clean site 某些测试生成消息: 无法初始化类org.jdom2.input.sax.XMLReaders 这些错误发生在使用ROME解析RSS数据的类中。为此,该项目依赖于ROME(com.rometools:ROME:1.5.0),而ROME本身也依赖于JDOM 2.0.2 当ROME依赖项尚未包含在项目中时,错误
mvn clean package
所有测试都通过了。但在执行时:
mvn clean site
某些测试生成消息:无法初始化类org.jdom2.input.sax.XMLReaders 这些错误发生在使用ROME解析RSS数据的类中。为此,该项目依赖于ROME(com.rometools:ROME:1.5.0),而ROME本身也依赖于JDOM 2.0.2 当ROME依赖项尚未包含在项目中时,错误不会发生 Maven站点配置包括cobertura Maven插件。这还通过Jaxen:Jaxen:Jaxen:1.0->JDOM:JDOM:1.0依赖于JDOM 我认为在执行站点目标时,被测试的类使用了JDOM 1.0版本,这导致了ROME库中的错误,因为它使用了不正确的JDOM版本
我不知道如何将项目配置为仅在Cobertura插件中使用JDOM 1.0。是否有人知道如何在站点目标期间实现这一点并使测试成功运行?通过在程序启动期间设置系统值,问题得以解决:
System.setProperty("javax.xml.parsers.SAXParserFactory",
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
资料来源: