簡體   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