我正在使用相当稳定的Java库(例如Spring)的最新稳定版本,但从maven shade插件收到有关定义相同类的3个(三个)不同库的“重叠类”警告。

这些库:jakarta.activation-apijavax.activation-apiactivation

具体来说:

  • jakarta.activation:jakarta.activation-api:jar:1.2.2(jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3的依赖项)
  • javax.activation:javax.activation-api:jar:1.2.0(javax.xml.bind:jaxb-api:jar:2.3.1的依赖性,我认为应该用jakarta.xml.bind-api代替,但不确定)
  • javax.activation:activation:jar:1.1(com.sun.mail:javax.mail:jar:1.6.2的依赖项)

  • 什么是“正确”的库,它将减少最少的麻烦?

    更新:似乎jakarta.xml.bind-api代替了javax.xml.bind:jaxb-api(证明:herehere),因此在(1)和(2)之间的冲突中,应该优先使用jakarta one(jakarta.activation-api)而不是javax one(javax.activation-api)。首选的JAXB依赖项在in Jakarta web site中进行了描述。但是仍然不清楚这与javax.activation:activation有什么关系。

    最佳答案

    终于明白了。
    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

    10-07 19:01
    查看更多