模块化现有项目时,我遇到了以下问题:
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为什么会抱怨呢?
答案 0 :(得分:0)
一位同事对我们的项目进行了更改,从而使问题消失了。
将不得不研究实际的解决方法,现在我的假设是与Java ee vs. jakarta ee有关,这绝对是混淆名称冲突的好来源。