Maven 2 Maven org.apache.xerces.impl.dv.DVFactoryException

Maven 2 Maven org.apache.xerces.impl.dv.DVFactoryException,maven-2,Maven 2,我有一个带有两个子模块的Maven项目,每个模块都依赖于xerces2.8.1(对于带有cxf的wsdl2java)。如果我单独构建子模块,它将成功构建 如果我从根模块构建,在构建第二个子模块时,它会失败,出现以下异常 [INFO] org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apach e.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from

我有一个带有两个子模块的Maven项目,每个模块都依赖于xerces2.8.1(对于带有cxf的wsdl2java)。如果我单独构建子模块,它将成功构建

如果我从根模块构建,在构建第二个子模块时,它会失败,出现以下异常

[INFO] org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apach
e.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
以前有人见过这个吗

谢谢
Vijay

您需要在插件配置中添加以下内容:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <dependencies>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>
    ...
</plugin>

org.apache.cxf
cxf-codegen插件
${cxf.version}
薛西斯
干细胞移植
2.8.1
...

在这之后,它应该可以工作。

+1对于包含确切错误消息,请您解释一下答案好吗?为什么codegen插件需要内部依赖关系?因为正在加载另一个不受支持的xerces实现版本,而不是codegen插件所期望的版本。对于CXF 3.2.1,我使用了xerces 2.11.0,它解决了我的问题。在cxf父pom文件中可以找到正确的版本。