【问题标题】:Several java 'activation' libraries define overlapping classes. Which one to use?几个 java 'activation' 库定义了重叠的类。使用哪一个?
【发布时间】:2020-10-01 00:44:50
【问题描述】:

我正在使用 Spring 等标准 Java 库的最新稳定版本,但从 maven shade 插件收到关于定义相同类的三个不同库的“重叠类”警告。

图书馆:jakarta.activation-apijavax.activation-apiactivation

具体来说:

  1. jakarta.activation:jakarta.activation-api:jar:1.2.2jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3的依赖)
  2. javax.activation:javax.activation-api:jar:1.2.0(依赖javax.xml.bind:jaxb-api:jar:2.3.1,我觉得这个应该换成jakarta.xml.bind-api,但不确定)
  3. javax.activation:activation:jar:1.1com.sun.mail:javax.mail:jar:1.6.2的依赖)

哪个库是“正确”的库,会造成最少的麻烦?

更新:好像jakarta.xml.bind-api替换了javax.xml.bind:jaxb-api(证明:herehere),所以在(1)和(2)的冲突中,雅加达一( jakarta.activation-api) 应该优先于 javax 之一 (javax.activation-api)。首选的 JAXB 依赖项描述为 in Jakarta web site。但目前尚不清楚这与javax.activation:activation 有何关系。

【问题讨论】:

    标签: java maven jakarta-ee jaxb


    【解决方案1】:

    终于明白了。
    JavaBeans 激活框架已移至 Jakarta Activation,见Jakarta JAF page,表示javax.activation:activation 已过期。
    正确的似乎是jakarta activation,感谢this answer

    同样适用于需要激活 JAR 的电子邮件和 XML 处理 - 使用 Jakarta 的:com.sun.mail:jakarta.mailjakarta.xml.bind:jakarta.xml.bind-api

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2014-01-14
      相关资源
      最近更新 更多