繁体   English   中英

排除依赖无助于修复“package org.w3c.dom 可以从多个模块访问:<unnamed> , java.xml”</unnamed>

[英]Excluding dependency does not help to fix “The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml”

在尝试使用 Java 版本 > 9 设置项目时,我遇到了依赖项和 Java 模块系统的问题。 我知道有一些关于这个主题的帖子(例如this onethis one ),但解决方案(从依赖项中排除包)似乎对我没有帮助。
On some imports related to XML parsing, I get the following error The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml

我使用了“打开类型”对话框,发现实际上有两个提供程序,例如 org.w3c.dom.Document。 org.w3c.dom.Document 的两个提供者

这个rmlmapper-4.9.1.jar目前是我项目中唯一的 maven 依赖项,我尝试按照此处的建议排除 xml-apis。 如您所见,我还添加了 org.w3c.dom。

<dependencies>
    <dependency>
        <groupId>be.ugent.rml</groupId>
        <artifactId>rmlmapper</artifactId>
        <version>4.9.1</version>
        <exclusions>
            <exclusion>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.w3c</groupId>
                <artifactId>dom</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

不幸的是,这无济于事,错误仍然存在。 请注意,我可以构建项目,但在运行时会出错。 我是否排除了错误的包裹? 我找不到使用mvn dependency:tree提供org.w3c.dom的 package 那么如何找到需要排除的包?

From the Eclipse snapshot you provide, it seems the package org.w3c.dom is embedded in the rmlmapper dependency Jar itself (the Jar is probably bundling its own dependencies in it). 因此exclusion将不起作用,因为它只排除传递依赖项(而不是捆绑包)。 即使可以排除 package ,另一种方法是排除java.xml模块, 这里回答了--limit-modules选项。 请注意,如果rmlmapper还捆绑了其他 JDK 类,您可能必须对其他模块执行此操作。

无论哪种方式,最好的解决方案是联系rmlmapper库的所有者,让他们知道 Java 9+ 上的问题,因为他们可能没有升级他们的项目以支持该版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM