Ale*_*der 7 java jaxb maven jakarta-ee
我正在使用相当标准的 Java 库(例如 Spring)的最新稳定版本,但从 maven shade 插件中收到关于定义相同类的三个不同库的“重叠类”警告。
库: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)。Jakarta 网站中描述了首选的 JAXB 依赖项。但目前尚不清楚这与javax.activation:activation.
终于得到了。
JavaBeans 激活框架已移至 Jakarta Activation,请参阅Jakarta JAF 页面,这意味着javax.activation:activation已过时。
正确的似乎是雅加达激活,多亏了这个答案。
对于需要激活 JAR 的电子邮件和 XML 处理也是如此 - 使用 Jakarta 的:com.sun.mail:jakarta.mail和jakarta.xml.bind:jakarta.xml.bind-api.