gpt4 book ai didi

JAXB (RI) 库与 JDK

转载 作者:行者123 更新时间:2023-12-04 20:37:59 30 4
gpt4 key购买 nike

使用 maven,有几个插件可以支持,例如从 XSD 生成 JAXB 类,例如org.codehaus.mojo:jaxb2-maven-plugin 和 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin。
那些的最新版本依赖于例如org.glassfish.jaxb:jaxb-xjc 和 org.glassfish.jaxb:jaxb-runtime(在 2.2.11 版中)。

但是我想知道如果我使用它们从 XSD 生成我的类但在运行时仅使用 JDK 8(包含 2.2.8 版)会发生什么:我会不会有运行时错误的风险?所以是必要的还是建议始终使用与我用来从 XSD 生成类的 jaxb-xjc 版本相对应的 jaxb-runtime?

当然,我可以简单地覆盖对 jaxb-xjc 等的依赖,并明确使用 2.2.8 版。但即便如此,我还是想知道是否会得到与直接使用 JDK 8 xjc 工具相同的结果?

最佳答案

你有三个阶段:

  • (1) 生成模式派生代码
  • (2)schema派生代码的编译
  • (3) 运行时间

  • 用于编译 (2) 的 JAXB API 最重要的是与您在运行时使用的 JAXB API (3) 兼容。如果不是这种情况,那么您可能会编译使用某些稍后在运行时中不可用的注释的代码。您将首先在运行时看到错误。

    至于(1)vs.(2),这也是必要的。如果您使用 JAXB 2.2.x 生成并使用 JAXB 2.1.x 进行编译,则这不一定有效。但这并不重要,因为这将是一个编译错误,您将被迫纠正。

    因此,如果您的问题只是 使用的 JAXB 版本与嵌入在 JDK 中的 JAXB 版本相比,我不会担心这个。只要它编译通过,你就和以往一样安全。

    关于JAXB (RI) 库与 JDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829857/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com