使用 JAXB 3.0 和 jaxb2-maven-plugin 将 XSD / XJB 转换为 Java 类不适用于注释(-Xannotate xjc 开关)

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

我正在尝试将我的 Java 类生成从以前的 javax.* 迁移到 jakarta.* 我正在使用 Maven 插件

<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>3.1.0</version>

将目标设置为 3.0 并使用参数

<arguments>
    <argument>-Xinject-code</argument>
    <argument>-Xannotate</argument>
</arguments>

在我的 xjb 中,我有一些注释绑定(将 Lombok 注释添加到我的类中)。

<jxb:bindings version="3.0"
    xmlns:jxb="https://jakarta.ee/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:annox="http://annox.dev.java.net"
    jxb:extensionBindingPrefixes="xjc annox">

我收到异常:“com.sun.tools.xjc.BadCommandLineException:无法识别的参数-Xannotate”

我明白了,那个注释是一个 xjc 插件。是否有一个新的实现,我可以将其添加到 jaxb2-maven-plugin 依赖项中以使其工作?

我已经尝试过了

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>3.1.0</version>
    ...
    <dependencies>
        <dependency>
            <groupId>org.patrodyne.jvnet</groupId>
            <artifactId>hisrc-hyperjaxb-annox-plugin</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
    </dependencies>
</plugin>

没有成功(仍然无法识别参数)

java jaxb xjc jakarta-migration
1个回答
0
投票

http://annox.dev.java.net
命名空间与jaxb2注释插件相关

现在该插件已合并到 jaxb-tools 中,它是 maven-jaxb2-plugin 的前存储库。

您可以按照迁移指南获取最新版本的插件。从v3(jakarta jaxb3版本)开始,该插件位于

<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugin-annotate</artifactId>
<version>3.0.0</version>
© www.soinside.com 2019 - 2024. All rights reserved.