【问题标题】:modular java project (IntelliJ IDEA): Module 'com.test' reads package 'javax.xml.bind' from both 'java.xml.bind' and 'java.xml.bind'模块化 java 项目(IntelliJ IDEA):模块“com.test”从“java.xml.bind”和“java.xml.bind”读取包“javax.xml.bind”
【发布时间】:2021-01-19 10:08:10
【问题描述】:

我正面临一个与模块相关的非常令人沮丧的问题。不知道为什么我会得到

Module 'com.test' reads package 'javax.xml.bind' from both 'java.xml.bind' and 'java.xml.bind'

如何解决?

模块列表

module com.test {
    requires java.activation;
    requires slf4j.api;
    requires spring.context;
    requires java.persistence;
    requires spring.beans;
    requires org.apache.cxf.core;
    requires java.xml;
    requires java.xml.bind;
}

我的环境

IntelliJ IDEA 2020.3.1 (Community Edition)

JAVA JDK 11

第 1 次更新

stackoverflow.com 上发现了一个与我面临的非常相似的问题的帖子 Package 'com.example' reads package 'javafx.beans' from both 'javafx.base' and 'javafx.base'

第 2 次更新

[INFO] +- org.hibernate:hibernate-core:jar:5.4.23.Final:provided
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:provided
[INFO] |  +- javax.persistence:javax.persistence-api:jar:2.2:provided
[INFO] |  +- org.javassist:javassist:jar:3.24.0-GA:provided
[INFO] |  +- net.bytebuddy:byte-buddy:jar:1.10.17:provided
[INFO] |  +- antlr:antlr:jar:2.7.7:provided
[INFO] |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.1.1.Final:provided
[INFO] |  +- org.jboss:jandex:jar:2.1.3.Final:provided
[INFO] |  +- com.fasterxml:classmate:jar:1.5.1:provided
[INFO] |  +- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] |  +- org.dom4j:dom4j:jar:2.1.3:provided
[INFO] |  +- org.hibernate.common:hibernate-commons-annotations:jar:5.1.2.Final:provided
[INFO] |  +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] |  \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.1:compile
[INFO] |     +- org.glassfish.jaxb:txw2:jar:2.3.1:compile
[INFO] |     \- com.sun.istack:istack-commons-runtime:jar:3.0.7:compile
[INFO] +- org.springframework:spring-context:jar:5.3.1:provided
[INFO] |  +- org.springframework:spring-aop:jar:5.3.1:provided
[INFO] |  +- org.springframework:spring-beans:jar:5.3.1:provided
[INFO] |  +- org.springframework:spring-core:jar:5.3.1:provided
[INFO] |  |  \- org.springframework:spring-jcl:jar:5.3.1:provided
[INFO] |  \- org.springframework:spring-expression:jar:5.3.1:provided
[INFO] +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:compile
[INFO] |  \- jakarta.activation:jakarta.activation-api:jar:1.2.2:compile
[INFO] +- org.apache.cxf:cxf-core:jar:3.4.1:compile
[INFO] |  +- com.fasterxml.woodstox:woodstox-core:jar:6.2.1:compile
[INFO] |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.5:compile
[INFO] |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  +- jakarta.jws:jakarta.jws-api:jar:2.1.0:compile
[INFO] |  +- jakarta.xml.soap:jakarta.xml.soap-api:jar:1.4.2:compile
[INFO] |  +- com.sun.activation:jakarta.activation:jar:1.2.2:compile
[INFO] |  +- com.sun.xml.messaging.saaj:saaj-impl:jar:1.5.2:runtime
[INFO] |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  \- org.jboss.spec.javax.rmi:jboss-rmi-api_1.0_spec:jar:1.0.6.Final:compile
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.3.3:runtime
[INFO] +- jakarta.xml.ws:jakarta.xml.ws-api:jar:2.3.3:compile
[INFO] +- com.sun.xml.ws:jaxws-rt:jar:2.3.3:compile
[INFO] |  +- com.sun.xml.ws:policy:jar:2.7.10:compile
[INFO] |  +- org.glassfish.ha:ha-api:jar:3.1.12:compile
[INFO] |  +- org.glassfish.external:management-api:jar:3.2.2:compile
[INFO] |  +- org.glassfish.gmbal:gmbal:jar:4.0.1:compile
[INFO] |  +- org.glassfish.pfl:pfl-tf:jar:4.1.0:compile
[INFO] |  +- org.glassfish.pfl:pfl-basic:jar:4.1.0:compile
[INFO] |  +- org.jvnet.staxex:stax-ex:jar:1.8.3:compile
[INFO] |  +- com.sun.xml.stream.buffer:streambuffer:jar:1.5.9:compile
[INFO] |  +- org.jvnet.mimepull:mimepull:jar:1.9.13:compile
[INFO] |  +- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.18:compile
[INFO] |  \- org.codehaus.woodstox:stax2-api:jar:4.1:compile
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.13.3:compile
[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.13.3:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- org.junit.jupiter:junit-jupiter-params:jar:5.7.0:test
[INFO] |  \- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.7.0:test
[INFO] |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  \- org.junit.platform:junit-platform-commons:jar:1.7.0:test
[INFO] \- org.mockito:mockito-junit-jupiter:jar:3.5.10:test
[INFO]    \- org.mockito:mockito-core:jar:3.5.10:test
[INFO]       +- net.bytebuddy:byte-buddy-agent:jar:1.10.13:test
[INFO]       \- org.objenesis:objenesis:jar:3.1:test

【问题讨论】:

  • 因为我感觉Maven 涉及,可能值得看一下dependency:tree,你的模块路径中可能存在同一个模块的两个不同版本。超过java(正如你的标签所建议的那样),老实说,我会对解决这个问题的 Maven 特定解决方案感兴趣。

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


【解决方案1】:

感谢 Naman 和原始帖子中提供的链接,我发现我在使用 cxf 时混合了 jakarta.activationjavax.activation。 而且,因为cxf-xjc-plugin:3.3.1 使用 javax.activation 从 xsd 文件生成代码,我不得不排除 在 pom 中的任何地方jakarta.activation

更新一号

确切地说,我必须用 jakarta 依赖项替换 javax 依赖项 具有 javax 包命名结构(即 javax.activation 而不是 jakarta.activation),即

<has javax packaging structure>
<dependency>
    <groupId>jakarta.jws</groupId>
    <artifactId>jakarta.jws-api</artifactId>
    <version>2.1.0</version>
</dependency>

但不是

<has jakarta packaging structure>
<dependency>
    <groupId>jakarta.jws</groupId>
    <artifactId>jakarta.jws-api</artifactId>
    <version>3.0.0</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 2018-04-01
    • 2013-07-24
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2020-06-17
    相关资源
    最近更新 更多