Java 使用CXF/JAXB2生成和自定义equals/hashcode方法

Java 使用CXF/JAXB2生成和自定义equals/hashcode方法,java,jaxb,cxf,maven-jaxb2-plugin,Java,Jaxb,Cxf,Maven Jaxb2 Plugin,我有两个类A和B,它们是由我的WSDL中的cxfcodegenplugin生成的A继承自B 我想添加一些常用方法,如hashCode(),equals()。。。因此,我的POM中有以下配置: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>2.6.0</

我有两个类
A
B
,它们是由我的WSDL中的
cxfcodegenplugin
生成的<代码>A继承自
B

我想添加一些常用方法,如
hashCode()
equals()
。。。因此,我的POM中有以下配置:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/wsdl/PeeringApi.wsdl</wsdl>
                        <extraargs>
                            <extraarg>-xjc-XhashCode</extraarg>
                            <extraarg>-xjc-Xequals</extraarg>
                            <extraarg>-xjc-Xsetters</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.jvnet.jaxb2_commons</groupId>
            <artifactId>jaxb2-basics</artifactId>
            <version>${jaxb2.version}</version>
        </dependency>
    </dependencies> </plugin>

org.apache.cxf
cxf-codegen插件
2.6.0
生成源
生成源
${basedir}/wsdl/PeeringApi.wsdl
-xjc XhashCode
-xjc Xequals
-xjc Xsetters
wsdl2java
org.jvnet.jaxb2_commons
jaxb2基础知识
${jaxb2.version}
我有两个问题:

  • 有没有办法生成一个不比较
    B
    属性的
    equals()
    方法(即不调用
    super.equals()
  • 如何指示插件生成一个只比较我指定的
    A
    的某些属性的
    equals()
    方法(默认情况下,似乎比较了所有属性)

  • 谢谢

    我找到了一个解决方案,正如这里解释的那样:


    您可以添加自定义绑定,以指示JAXB2插件忽略某个属性。

    错误的插件,而不是cxf-*-plugin。
    cxf codegen插件
    用于在maven构建过程中从.wsdl和.xsd文件生成源代码。在后台,它还使用
    jaxb2 basics
    库生成
    equals
    hashCode
    方法,如xjc参数和绑定文件中指定的那样。