当前位置: 首页 > 知识库问答 >
问题:

包组织。w3c。dom可以从多个模块访问:,java。xml~查找并排除依赖项

司寇飞航
2023-03-14

我知道已经有一些关于这些问题的话题了,但我遇到的情况有所不同。

它以以下错误消息开始:

import org.w3c.dom.Element;
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml

我知道下面的依赖关系“导致”了这种情况,因为如果我删除它,这个错误就会消失(并弹出许多其他错误):

compile "org.eclipse.lyo.clients:oslc-java-client:2.4.0"

我已经试过这个了:

    compile ("org.eclipse.lyo.clients:oslc-java-client:2.4.0") {
        exclude group: "org.w3c.dom", module: "org.w3c.dom"
    }

然而,这并没有改变这个问题。

我尝试使用gradle dependencies列出可传递的依赖项,它为OSLC Java客户端返回了此依赖项树:

+--- org.eclipse.lyo.clients:oslc-java-client:2.4.0
|    +--- org.slf4j:slf4j-api:1.7.25
|    +--- org.apache.jena:apache-jena-libs:3.6.0
|    |    +--- org.apache.jena:jena-tdb:3.6.0
|    |    |    +--- org.apache.jena:jena-arq:3.6.0
|    |    |    |    +--- org.apache.jena:jena-core:3.6.0
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    |    +--- org.apache.jena:jena-iri:3.6.0
|    |    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    |    +--- xerces:xercesImpl:2.11.0
|    |    |    |    |    |    \--- xml-apis:xml-apis:1.4.01
|    |    |    |    |    +--- commons-cli:commons-cli:1.4
|    |    |    |    |    \--- org.apache.jena:jena-base:3.6.0
|    |    |    |    |         +--- org.apache.jena:jena-shaded-guava:3.6.0
|    |    |    |    |         |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    |         +--- org.apache.commons:commons-csv:1.5
|    |    |    |    |         +--- commons-io:commons-io:2.6
|    |    |    |    |         +--- org.apache.commons:commons-lang3:3.4
|    |    |    |    |         +--- com.github.andrewoma.dexx:collection:0.7
|    |    |    |    |         \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    +--- org.apache.jena:jena-shaded-guava:3.6.0 (*)
|    |    |    |    +--- org.apache.httpcomponents:httpclient:4.5.3
|    |    |    |    |    +--- org.apache.httpcomponents:httpcore:4.4.6
|    |    |    |    |    +--- commons-logging:commons-logging:1.2
|    |    |    |    |    \--- commons-codec:commons-codec:1.9
|    |    |    |    +--- com.github.jsonld-java:jsonld-java:0.11.1
|    |    |    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.9.0
|    |    |    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.9.0
|    |    |    |    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
|    |    |    |    |    |    \--- com.fasterxml.jackson.core:jackson-core:2.9.0
|    |    |    |    |    +--- org.slf4j:jcl-over-slf4j:1.7.25
|    |    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    |    \--- commons-io:commons-io:2.5 -> 2.6
|    |    |    |    +--- org.apache.httpcomponents:httpclient-cache:4.5.3
|    |    |    |    |    \--- org.apache.httpcomponents:httpclient:4.5.3 (*)
|    |    |    |    +--- org.apache.thrift:libthrift:0.10.0
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.12 -> 1.7.25
|    |    |    |    |    \--- org.apache.httpcomponents:httpclient:4.4.1 -> 4.5.3 (*)
|    |    |    |    +--- org.slf4j:jcl-over-slf4j:1.7.25 (*)
|    |    |    |    +--- org.apache.commons:commons-lang3:3.4
|    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    +--- org.apache.jena:jena-tdb2:3.6.0
|    |    |    +--- org.apache.jena:jena-dboe-trans-data:3.6.0
|    |    |    |    +--- org.apache.jena:jena-dboe-transaction:3.6.0
|    |    |    |    |    +--- org.apache.jena:jena-dboe-base:3.6.0
|    |    |    |    |    |    +--- org.apache.jena:jena-arq:3.6.0 (*)
|    |    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    +--- org.apache.jena:jena-dboe-index:3.6.0
|    |    |    |    |    +--- org.apache.jena:jena-dboe-base:3.6.0 (*)
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    +--- org.apache.jena:jena-rdfconnection:3.6.0
|    |    |    +--- org.apache.jena:jena-arq:3.6.0 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.25
|    |    \--- org.slf4j:slf4j-api:1.7.25
|    +--- net.oauth.core:oauth:20100527
|    +--- net.oauth.core:oauth-consumer:20100527
|    |    \--- net.oauth.core:oauth:20100527
|    +--- net.oauth.core:oauth-httpclient4:20090913
|    |    +--- net.oauth.core:oauth-consumer:20090617 -> 20100527 (*)
|    |    \--- org.apache.httpcomponents:httpclient:4.0 -> 4.5.3 (*)
|    +--- org.apache.wink:wink-client:1.4 (*)
|    +--- org.apache.wink:wink-client-apache-httpclient:1.4
|    |    +--- org.apache.wink:wink-client:1.4 (*)
|    |    \--- org.apache.httpcomponents:httpclient:4.1.3 -> 4.5.3 (*)
|    +--- org.eclipse.lyo.oslc4j.core:oslc4j-core:2.4.0
|    |    +--- javax.ws.rs:jsr311-api:1.1.1
|    |    +--- org.apache.jena:apache-jena-libs:3.6.0 (*)
|    |    +--- org.slf4j:slf4j-api:1.7.25
|    |    \--- org.assertj:assertj-core:3.8.0
|    +--- org.eclipse.lyo.oslc4j.core:oslc4j-jena-provider:2.4.0
|    |    +--- org.eclipse.lyo.oslc4j.core:oslc4j-core:2.4.0 (*)
|    |    +--- xml-apis:xml-apis:1.3.04 -> 1.4.01
|    |    +--- xerces:xercesImpl:2.8.0 -> 2.11.0 (*)
|    |    +--- org.slf4j:slf4j-api:1.7.25
|    |    \--- org.apache.jena:apache-jena-libs:3.6.0 (*)
|    +--- org.eclipse.lyo.oslc4j.core:oslc4j-json4j-provider:2.4.0
|    |    +--- org.eclipse.lyo.oslc4j.core:oslc4j-core:2.4.0 (*)
|    |    \--- org.apache.wink:wink-json4j:1.2.1-incubating
|    +--- org.apache.httpcomponents:httpcore:4.4.5 -> 4.4.6
|    +--- org.apache.httpcomponents:httpclient:4.5.2 -> 4.5.3 (*)
|    +--- xerces:xercesImpl:2.8.0 -> 2.11.0 (*)
|    +--- xml-apis:xml-apis:1.3.04 -> 1.4.01
|    +--- javax.servlet:javax.servlet-api:3.1.0
|    \--- javax.ws.rs:jsr311-api:1.1.1

现在,让我困惑的是,w3c似乎不存在于该树的任何地方。这怎么可能?我知道一个事实,删除这个依赖项可以解决w3c冲突,所以从逻辑上讲,它必须在那里的某个地方,或者我遗漏了什么?

有人知道这是怎么回事吗?有什么办法吗?

共有1个答案

池宸
2023-03-14

我现在设法找到了解决方法,尽管我还不完全了解解决方法与问题的关系。

底线是,对xmlapi的可传递依赖某种程度上导致了这种情况,尽管xmlapi本身似乎没有任何依赖关系。因此,这样编写依赖关系解决了我的问题:

    compile ("org.eclipse.lyo.clients:oslc-java-client:2.4.0"){
        exclude module: "xml-apis"
    }

有人对此有更令人满意的解释吗?到目前为止,我只知道xml-apis(https://mvnrepository.com/artifact/xml-apis/xml-apis/1.4.01)似乎没有任何依赖关系,但是,由于某种原因,它确实使用了W3C许可证。

 类似资料:
  • 我无法导入打包到Eclipse。它正在显示 包组织。w3c。dom可以从多个模块访问:

  • 我正在使用: 火狐56.0.1 硒3.6.0 Windows 10家庭版 壁虎司机0.19.0 错误消息是 包组织。openqa。selenium可以从多个模块访问:客户端。合并,净额。bytebuddy“

  • 我的项目在Java1.8u151中运行良好。我正在尝试将它升级到Java12,但是我得到了以下错误。 这是唯一的错误,在Java12中的大多数包中都会重复出现,但在Java8中效果良好。 我已尝试将所有jar文件从模块路径移动到类路径。模块路径中只有Java 12库。我在Java版本的软件包中寻找任何不推荐的东西。我用不同的Java版本尝试了3种不同的系统(都运行OS-X10.13.6、10.13

  • 尝试使用Java版本设置项目时 这个rmlmapper-4.9.1.jar是我项目中目前唯一的maven依赖项,我试图按照这里的建议排除xml-apis。如你所见,我还添加了org.w3c.dom。 不幸的是,这没有帮助,错误仍然存在。请注意,我可以构建项目,但在运行时会出现错误。我是否排除了错误的包裹?我找不到提供使用如何找到需要排除的包?

  • 我已经研究了好几天了,似乎所有的答案都是特定于Eclipse的。我在Visual Studio Code上遇到此错误: 这将出现在包含导入。 使用: Java 11.0.4 Gradle构建时没有问题,因此错误消息表示终端和VSCode之间存在某种断开连接。 到目前为止,我已经: 确保和匹配 任何帮助都将不胜感激,谢谢您的时间! 我知道这个问题,但一直没有答案。