Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改java类以在编译时包含特定注释_Java_Jaxb_Xjc_Lombok_Jaxb2 Annotate Plugin_Jaxb2 Maven Plugin_Maven Jaxb2 Plugin - Fatal编程技术网

修改java类以在编译时包含特定注释

修改java类以在编译时包含特定注释,java,jaxb,xjc,lombok,jaxb2-annotate-plugin,jaxb2-maven-plugin,maven-jaxb2-plugin,Java,Jaxb,Xjc,Lombok,Jaxb2 Annotate Plugin,Jaxb2 Maven Plugin,Maven Jaxb2 Plugin,我有许多由JAXB的xsd2java生成的类。我需要在编译时用特定的注释对所有这些类进行注释(例如使用lombok注释)。有什么方法可以做到这一点,例如使用一些代码生成工具吗?免责声明:我是该工具的作者,它允许您向模式派生类添加任意注释 简短示例: <xsd:complexType name="FooType"> <xsd:annotation> <xsd:appinfo> <annox:annotate&

我有许多由JAXB的xsd2java生成的类。我需要在编译时用特定的注释对所有这些类进行注释(例如使用lombok注释)。有什么方法可以做到这一点,例如使用一些代码生成工具吗?

免责声明:我是该工具的作者,它允许您向模式派生类添加任意注释

简短示例:

<xsd:complexType name="FooType">
    <xsd:annotation>
        <xsd:appinfo>
            <annox:annotate>@java.lang.SuppressWarnings({"unchecked","rawtypes"})</annox:annotate>
            <annox:annotate target="package">@javax.annotation.Generated({"XJC","JAXB2 Annotate Plugin"})</annox:annotate>
        </xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="bar" type="xsd:string"/>
        <xsd:element name="foobar" type="xsd:string">
            <xsd:annotation>
                <xsd:appinfo>
                    <annox:annotate>@java.lang.SuppressWarnings({"unchecked","rawtypes"})</annox:annotate>
                    <annox:annotate target="setter">@java.lang.Deprecated</annox:annotate>
                    <annox:annotate target="setter-parameter">@java.lang.Deprecated</annox:annotate>
                    <annox:annotate target="getter">@java.lang.Deprecated</annox:annotate>
                    <annox:annotate target="field">@java.lang.Deprecated</annox:annotate>
                    <annox:annotate target="class">@java.lang.Deprecated</annox:annotate>
                </xsd:appinfo>
            </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>
本部分:

<plugin>
    <groupId>org.jvnet.jaxb2_commons</groupId>
    <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
</plugin>

org.jvnet.jaxb2_commons

对于/combo.

确实,我是指XJC,对此表示抱歉。我以前见过这个插件,但我认为它只能用于JDK注释。我正在使用jaxb2 maven插件生成类,您能解释一下在这种情况下“包含到XJC类路径”是什么意思吗?而且,我很难理解这是如何工作的。如何注释包的所有类?target=“package”是否会这样?提前谢谢你!另外,我似乎需要maven-jaxb2-plugin而不是jaxb2-maven-plugin,对吗?@alex我碰巧也是这本书的作者。因此,我的建议是使用
maven-jaxb2-plugin
,这是非常有偏见的。@alex您也可以使用
jaxb2-annotate-plugin
。我只是从来没有试过。通过使用
pom.xml
中的
dependency/dependency
,可以在类路径中包含其他JAR。然后需要将
参数添加到配置中。请参阅此答案(和问题)的示例:这是关于其他插件的,但您将了解如何使用Codehaus
jaxb2-maven-plugin
配置它。我决定使用在您提到的示例中找到的fluent-api插件。这就是我想要的,一种类似于生成器的创建实例的方法
<plugin>
    <groupId>org.jvnet.jaxb2_commons</groupId>
    <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
</plugin>