繁体   English   中英

XJC JAXB XSD 搬运 Java 11

[英]XJC JAXB XSD handling with Java 11

我们有一个基于 Java 11 的项目,带有 maven,在我们的源代码中,我们确实有一个 package 和 xjc 生成的类。 一旦我们修改了 XSD 文件,我们就运行 xjc 并将类复制到我们的项目中以访问新字段。 这工作正常,但是随着项目的增长,我们得到越来越多的 XSD 文件,并且使用 xjc 的过程不是很直观。 另外 xjc 不是 java 的一部分 11 不再采用 JDK,所以我们必须使用旧的 java 8 oracle 才能使用 jd

我们的另一个选择是使用 maven 插件。 但我想知道,这是否适用于我们的项目设置。 因为插件是在安装阶段执行的,所以类只会在这个阶段(或者它设置的任何阶段)生成。 所以这些类只有在运行完这个阶段后才可用。

这意味着如果我更改 XSD,我将新的 XSD 复制到我的项目中,运行 mvn install,然后在 IntelliJ 中更新我的源,然后我可以访问新字段?

或者是在单独的 Maven 项目中管理 XSD 并将该项目配置为您自己的主项目中的依赖项的通常过程? 一旦 XSD 发生变化,我是否会有一个新版本的依赖项,我是否必须在 pom.xml 中对其进行调整?

我想知道哪种方式在这里有意义。

您的问题中有几个误解,我想纠正它们:

  • you don't need Java 8 to use XJC, as this tool is available on Maven in both the com.sun.xml.bind and org.glassfish.jaxb groups (the latter one has its dependencies split into many jars). 如果要在 Java 11 上使用 JAXB,则必须在软件中包含jaxb-impljaxb-runtime
  • jaxb2-maven-plugin不在install阶段运行,而是在compile阶段之前的generate-sources阶段运行(参见Lifecycles Reference )。

您决定在外部运行 XJC 还是通过 Maven 主要取决于您的开发风格。

只有当生成代码的大小变得相当大时,我才会将生成的代码拆分到另一个项目中:例如,每当生成的代码量(永远不会手动修改)开始减慢 Eclipse 的启动速度时,我们将其迁移到另一个项目中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM