maven - JAXB 等于且哈希码 : gives error

标签 maven jaxb maven-jaxb2-plugin jaxb2-basics jaxb2-maven-plugin

我正在尝试让我的 pom.xml 在我的 JAXB 对象上生成 hashCode() 和 equals method()。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>org.jvnet.jaxb2_commons</groupId>
        <artifactId>jaxb2-commons-lang</artifactId>
        <version>2.3</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.8.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <extension>true</extension>
                <args>
                    <arg>-XtoString</arg>
                    <arg>-Xequals</arg>
                    <arg>-XhashCode</arg>
                </args>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics</artifactId>
                        <version>0.6.2</version>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>

    </plugins>
</build>

这会产生以下错误...

package org.jvnet.jaxb2_commons.lang does not exist
package org.jvnet.jaxb2_commons.locator does not exist
package org.jvnet.jaxb2_commons.locator.util does not exist
cannot find symbol symbol: class Equals
cannot find symbol symbol: class HashCode
cannot find symbol symbol: class ToString
cannot find symbol symbol  : class ObjectLocator
cannot find symbol symbol  : class ToStringStrategy
cannot find symbol symbol  : class HashCodeStrategy

我用谷歌搜索了一下,找到了一篇关于添加的帖子..

<dependency>
    <groupId>org.jvnet.jaxb2_commons</groupId>
    <artifactId>runtime</artifactId>
    <version>0.4.1</version>
</dependency>
<dependency>
    <groupId>org.jvnet.jaxb2_commons</groupId>
    <artifactId>testing</artifactId>
    <version>0.4.1</version>
    <scope>test</scope>
</dependency>

但这没有帮助。

谁能帮帮我!

最佳答案

这是我们正在使用的配置集。我相信有许多元素需要“排列”(可以这么说),否则您会收到指示的错误。

一般依赖关系:-

    <dependency>
        <groupId>org.jvnet.jaxb2_commons</groupId>
        <artifactId>jaxb2-basics-runtime</artifactId>
        <version>0.6.4</version>
    </dependency>

maven-jaxb2-插件:-

        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.8.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <extension>true</extension>
                <generatePackage>you.package.etc</generatePackage>
                <args>
                    <arg>-XtoString</arg>
                    <arg>-Xequals</arg>
                    <arg>-XhashCode</arg>
                    <arg>-Xinheritance</arg>
                    <arg>-Xcopyable</arg>
                    <arg>-XenumValue</arg>
                </args>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics</artifactId>
                        <version>0.6.4</version>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>

绑定(bind)摘录:-

<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
    jaxb:extensionBindingPrefixes="inheritance"
    jaxb:version="2.1">

......

<jaxb:bindings schemaLocation="yourschema.xsd" node="/xs:schema">
    <jaxb:bindings node="//xs:element[@name='element-you-want-to-have-interface']">
        <jaxb:class />
        <inheritance:implements>your.interface</inheritance:implements>
    </jaxb:bindings>
</jaxb:bindings>

......

</jaxb:bindings>

关于maven - JAXB 等于且哈希码 : gives error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833340/

相关文章:

Maven:Surefire --dry-run?

java - 执行jar错误无法找到或加载主类

java - Jersey 的 EntityHolder 类型中的层次结构

java - 使用要创建的类参数化 JAXB 工厂方法

java - 从不同项目导入xsd,生成java类

maven-2 - maven3 运行时可以执行 maven2 兼容的 pom.xml 文件吗

java - 无法在项目 nextrtc-signaling-serverrror 上执行目标 org.codehaus.mojo :exec-maven-plugin:1. 5.0:java (default-cli)

java - 没有找到适合响应类型的 HttpMessageConverter

java - 使用 maven-jaxb2-plugin 生成 java 源代码时,如何为集合启用 setter?

java - jaxb、wsdl 文件、重复的类