[英]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 中对其进行调整?
我想知道哪种方式在这里有意义。
您的问题中有几个误解,我想纠正它们:
jaxb2-maven-plugin
不在install
阶段运行,而是在compile
阶段之前的generate-sources
阶段运行(参见Lifecycles Reference )。您决定在外部运行 XJC 还是通过 Maven 主要取决于您的开发风格。
只有当生成代码的大小变得相当大时,我才会将生成的代码拆分到另一个项目中:例如,每当生成的代码量(永远不会手动修改)开始减慢 Eclipse 的启动速度时,我们将其迁移到另一个项目中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.