我正在使用相当稳定的Java库(例如Spring)的最新稳定版本,但从maven shade插件收到有关定义相同类的3个(三个)不同库的“重叠类”警告。
这些库:jakarta.activation-api
,javax.activation-api
,activation
。
具体来说:
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
(证明:here和here),因此在(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.mail
和jakarta.xml.bind:jakarta.xml.bind-api
。