可以从多个模块访问 org.w3c.dom 包:<未命名>、java.xml

2022-09-01 01:05:03

我无法将软件包导入 Eclipse。它正在显示org.w3c.dom.NodeList

可以从多个模块访问 org.w3c.dom 包:、java.xml“日食中的错误消息。<unnamed>

请让我知道如何解决这个问题?

日食版本:

Eclipse IDE for Enterprise Java Developers.

版: 2019-06 (4.12.0)

版本ID:20190614-1200

Java 版本:

java版本 “12.0.1” 2019-04-16

Java(TM) SE 运行时环境(生成 12.0.1+12)

Java HotSpot(TM) 64 位服务器虚拟机(内部版本 12.0.1+12,混合模式,共享)


答案 1

由于传递依赖关系,我遇到了类似的问题。我使用Maven排除解决了它:xml-apis

<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>0.95</version>
    
    <exclusions>
        <exclusion>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

另一个只会引起麻烦的依赖关系,除了删除它之外,我没有解决方案是这个:

<dependency>
    <groupId>com.oracle.database.xml</groupId>
    <artifactId>xmlparserv2</artifactId>
    <version>${oracle.version}</version>
</dependency>

用于查看谁带来了可传递依赖项,然后从那里排除它。mvn dependency:tree


答案 2

令人失望的是,我没有看到任何编译器标志来显示问题所在,甚至-Xlint:module似乎没有显示任何有用的东西,eclipse也没有阐明这个问题。

相反,为了找到org.w3c.dom来自哪里,我一直在使用这个脚本:

mvn dependency:copy-dependencies -DincludeScope=test -DoutputDirectory=deps
for i in deps/*.jar; do if unzip -l $i| grep -q org.w3c.dom; then echo $i; fi ; done

严格来说,您不必指定范围测试,因为这是默认设置,但我已将其包含在内,因为您可能希望使用它compile