Jakarta 和 javax JAXB 包可以在同一个项目中共存吗?

问题描述 投票:0回答:1

我的项目中有两个库:

  • 库 A 依赖于旧的 XML 绑定库
    javax.xml.bind...
  • 库 B 依赖于新的 XML 绑定库
    jakarta.xml.bind...
<dependency>
  <groupId>jakarta.xml.bind</groupId>
  <artifactId>jakarta.xml.bind-api</artifactId>
  <version>x</version>
</dependency>

如果版本 x=2.3.x 库 B 损坏。如果 x=4.0.x A 中断(未找到类异常)。

有没有办法让新旧绑定 API 在类路径中共存?如果是这样,我应该使用哪些依赖项?如果没有,阴影是唯一的解决方案吗?

使用的运行时:

<dependency>
  <groupId>org.glassfish.jaxb</groupId>
  <artifactId>jaxb-runtime</artifactId>
  <version>2.3.2</version>
</dependency>

java xml jaxb
1个回答
0
投票

我不会尝试让它按原样工作,因为你可能在运行时遇到其他问题。

我建议您使用 eclipse 转换器来使 javax 依赖项在 jakarta 中进行转换(例如参见 本指南

如果你真的想尝试让它运行,你应该像 api 一样使用 jaxb2.3 的旧版 Maven 坐标

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>

并让雅加达的人以雅加达为基础。

© www.soinside.com 2019 - 2024. All rights reserved.