【问题标题】:Adding @Generated annotation to JAXB generated classes向 JAXB 生成的类添加 @Generated 注释
【发布时间】:2017-04-27 13:09:05
【问题描述】:

我正在尝试将 @javax.annotation.Generated 注释添加到我的所有由 JAXB 从 XSD 生成的类中。

我正在使用 maven-jaxb2-plugin 和一个 binding.xjb 文件来生成源代码。我看到 JAXB 插件 jaxb2-basics-annotate 应该可以解决问题。但我能找到的只是为特定类添加注释的示例。喜欢这个:

<jaxb:bindings schemaLocation="csw/2.0.2/CSW-discovery.xsd" node="/xs:schema">
  <jaxb:bindings node="xs:complexType[@name='GetRecordsType']">
    <annox:annotate>
      <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" name="GetRecordsType" />
    </annox:annotate>
</jaxb:bindings>

如何为每个生成的文件执行此操作?这可能吗?

【问题讨论】:

    标签: java maven jaxb annotations


    【解决方案1】:

    看来您正在使用highsource/jaxb2-annotate-plugin 如果您还使用他的highsource/maven-jaxb2-plugin,则内置支持此功能。只需将其添加到插件配置中:

    <configuration>                                 
        <markGenerated>true</markGenerated>
    </configuration>
    

    同时检查controlling the output

    如果你是官方的 jaxb2 插件,这个功能也是内置的

    <configuration>
        <addGeneratedAnnotation>true</addGeneratedAnnotation>
    </configuration>
    

    【讨论】:

    • 注意:这两个都依赖于旧的 javax.annotation.Generated 注释,该注释在 Java 11 的 java.compiler 模块中移动到 javax.annotation.processing.Generated。如果你想添加这样的注释,你应该使用 annox 插件.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多