加上注解由JAXB生成包信息(Adding annotations to package-info

2019-10-20 15:58发布

我一直在使用annox加入我的JAXB生成的类注释(通过绑定文件),但我不能找到一种方法,直接添加在包装上(package-info.java)注解。

我一直在试图做这样的事情在我bindings.xml:

<jaxb:schemaBindings>
    <jaxb:package name="my.package">
        <annox:annotate>
            <annox:annotate annox:class="my.Annotation" />
        </annox:annotate>
    </jaxb:package>
</jaxb:schemaBindings>

但JAXB抱怨annox:annotate预计不会在那里。

是否有另一种方式做到这一点?

Answer 1:

笔者在这里。

这是不支持的时刻,但可以轻松实现。 请在这里提交一个问题: https://github.com/highsource/annox/issues

这将实现的方法是使用@target="package" 。 所以,你必须定义在这个包东西(一类,等等),并设置target属性package 。 然后,注释会去package-info.java

UPDATE

这在JAXB2注释插件1.0.0实施。

https://github.com/highsource/jaxb2-annotate-plugin/issues/1

例如 :

<jaxb:bindings
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:annox="http://annox.dev.java.net"
    jaxb:extensionBindingPrefixes="annox"

    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
        <jaxb:bindings node="xsd:complexType[@name='issueJIIB43Type']">
            <annox:annotate target="class">@javax.xml.bind.annotation.XmlRootElement("someElement")</annox:annotate>
            <annox:annotate target="package">@javax.xml.bind.annotation.XmlSchema(elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)</annox:annotate>
            <annox:annotatePackage>@javax.annotation.Generated({"XJC"})</annox:annotatePackage>
        </jaxb:bindings>
    </jaxb:bindings>
</jaxb:bindings>


文章来源: Adding annotations to package-info generated by JAXB