jaxb - 在没有 xjc 的情况下从 xsd 生成 java class
jaxb - generate java class from xsd without xjc
我需要一些帮助,我正在尝试为我的应用程序解组 XML。所以我有一个 XSD 文件,我想从中生成 Java 类。但我不想使用 XJC
命令(因为它不在我的 JDK 中,而且我希望它在每次我 运行 我的代码时自动完成)。
请问有人有其他不使用 xjc 的 JAXB 选项吗?
我正在与 Java(jdk : 12 & jre : 8)和 IntelliJ 社区合作。
更新: pom 文件中指示的插件不工作 "couldn't find artifact.."
这实际上取决于您的项目是如何组织/构建的。如果你想在每次构建项目时生成 java 类 以基于 XSD 文件构建(这是有道理的,因为 XSD 文件可能由于新需求或新服务版本),您可能应该使用构建管理器(maven 或 gradle)和适当的 maven / gradle 插件,它们将在项目构建期间调用。
为此可以使用 maven-jaxb2-plugin,它也在后台使用 XJC,但是在使用 maven 或 gradle 时,您不必担心在您的系统中是否有 XJC系统 - 它将由项目构建经理以及定义的所有其他依赖项下载。
已更新:
插件配置示例如下:
<build>
<plugins>
<!-- Generate JAXB classes -->
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.1</version>
<executions>
<!-- Handle XML schema -->
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaIncludes>
<include>PATH_TO_XSD_FILE</include>
</schemaIncludes>
<generatePackage>NAME_OF_JAVA_PACKAGE</generatePackage>
</configuration>
<id>jaxb-generate-classes</id>
</execution>
</executions>
<configuration>
<forceRegenerate>true</forceRegenerate>
<generateDirectory>${project.build.directory}/generated-sources/xjc</generateDirectory>
<verbose>true</verbose>
<debug>true</debug>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.codemodel</groupId>
<artifactId>codemodel</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
我需要一些帮助,我正在尝试为我的应用程序解组 XML。所以我有一个 XSD 文件,我想从中生成 Java 类。但我不想使用 XJC
命令(因为它不在我的 JDK 中,而且我希望它在每次我 运行 我的代码时自动完成)。
请问有人有其他不使用 xjc 的 JAXB 选项吗?
我正在与 Java(jdk : 12 & jre : 8)和 IntelliJ 社区合作。
更新: pom 文件中指示的插件不工作 "couldn't find artifact.."
这实际上取决于您的项目是如何组织/构建的。如果你想在每次构建项目时生成 java 类 以基于 XSD 文件构建(这是有道理的,因为 XSD 文件可能由于新需求或新服务版本),您可能应该使用构建管理器(maven 或 gradle)和适当的 maven / gradle 插件,它们将在项目构建期间调用。
为此可以使用 maven-jaxb2-plugin,它也在后台使用 XJC,但是在使用 maven 或 gradle 时,您不必担心在您的系统中是否有 XJC系统 - 它将由项目构建经理以及定义的所有其他依赖项下载。
已更新:
插件配置示例如下:
<build>
<plugins>
<!-- Generate JAXB classes -->
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.1</version>
<executions>
<!-- Handle XML schema -->
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaIncludes>
<include>PATH_TO_XSD_FILE</include>
</schemaIncludes>
<generatePackage>NAME_OF_JAVA_PACKAGE</generatePackage>
</configuration>
<id>jaxb-generate-classes</id>
</execution>
</executions>
<configuration>
<forceRegenerate>true</forceRegenerate>
<generateDirectory>${project.build.directory}/generated-sources/xjc</generateDirectory>
<verbose>true</verbose>
<debug>true</debug>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.codemodel</groupId>
<artifactId>codemodel</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>