首页 > 解决方案 > 如何排除 java.activation?

问题描述

组成工作 JAXB 的各个项目中的 module-info.java 包括:

    requires transitive jakarta.activation;

例如,https://github.com/eclipse-ee4j/jaxb-ri/blob/master/jaxb-ri/runtime/impl/src/main/java/module-info.java#L23

但是在 Java 10 下,安装我使用 JAXB 的项目时,maven 抱怨:

[ERROR] module org.jvnet.staxex reads package javax.activation from both java.activation and jakarta.activation
[ERROR] module com.sun.xml.bind reads package javax.activation from both java.activation and jakarta.activation
[ERROR] the unnamed module reads package javax.activation from both jakarta.activation and java.activation

由于我看不到如何隐藏 java.activation,我开始重新编译各种 JAXB 项目,因此它们需要 java.activation 而不是 jakarta.activation

这可行,但它不是正确的解决方案!如何在 Java 10 中隐藏/排除 java.activation?谢谢。

标签: javajaxbmaven-3java-9java-10

解决方案


尝试使用这个:

--patch-module java.activation=jakarta.activation-<version>.jar

jakarta.activation-<version>.jar应该是jar的文件名


推荐阅读