【问题标题】:package read from module (jar) that does not contain it从不包含它的模块(jar)中读取的包
【发布时间】:2019-08-02 12:55:43
【问题描述】:

模块化现有项目我遇到了以下问题:

javac (java 10 或 11) 抱怨:

[ERROR] module org.apache.commons.lang3 reads package javax.xml.soap from both java.xml.ws and java.xml.soap

(很多其他模块都会出现这个错误)

所以它说包“java.xml.soap”来自“java.xml.ws”模块。对吧?

这就是

mvn dependency:resolve

告诉我有关 java.xml.ws:

javax.xml.ws:jaxws-api:jar:2.3.1:compile -- module java.xml.ws

当我查看 jaxws-api-2.3.1.jar 时,只有以“javax.xml.ws”开头的包。但没有“java.xml.soap”。

通过 jar 命令描述模块会显示以下内容:

$ jar --file=jaxws-api-2.3.1.jar --describe-module
java.xml.ws jar:file:///C:/Users/xxx/.m2/repository/javax/xml/ws/jaxws-api/2.3.1/jaxws-api-2.3.1.jar/!module-info.class
exports javax.xml.ws
exports javax.xml.ws.handler
exports javax.xml.ws.handler.soap
exports javax.xml.ws.http
exports javax.xml.ws.soap
exports javax.xml.ws.spi
exports javax.xml.ws.spi.http
exports javax.xml.ws.wsaddressing
requires java.annotation
requires java.base mandated
requires java.logging
requires java.xml.bind
requires java.xml.soap
uses javax.xml.ws.spi.Invoker
uses javax.xml.ws.spi.Provider
uses javax.xml.ws.spi.ServiceDelegate
uses javax.xml.ws.spi.WebServiceFeatureAnnotation

那么为什么 javac 会抱怨呢?

【问题讨论】:

  • 使用jar --file=jaxws-api-2.3.1.jar--describe-module查看是否导出包javax.xml.soap
  • 无法正确格式化评论;但是,--describe-module 不会导出 java.xml.soap(它只需要 java.xml.soap) - 更新了 naman 建议的问题
  • 请将问题的详细信息作为编辑更新。

标签: java java-module java-platform-module-system


【解决方案1】:

一位同事对我们的项目进行了更改,从而解决了问题。

将不得不调查实际修复是什么,现在我的假设是这与 java ee 与 jakarta ee 有关,这绝对是混淆名称冲突的一个很好的来源。

【讨论】:

  • 排除 javax.mail:mail 无处不在,而使用 jakarta.mail:jakarta.mail-api 是解决方案。没有进一步调查。
猜你喜欢
  • 2013-10-28
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
相关资源
最近更新 更多