该项目有一个gradle模块来构建JAX2B类。XJC配置已经使用了注释:
bindingFiles = project.files("$projectDir/src/main/resources/binding.xjb",
"$projectDir/src/main/resources/annotations.xjb")
// Needed to execute custom annotations
options.add("-Xannotate")
}我想我可以添加一些选项让equals()和hashCode()
xjc {
bindingFiles = project.files("$projectDir/src/main/resources/binding.xjb",
"$projectDir/src/main/resources/annotations.xjb")
options.addAll("-Xannotate", "-Xequals", "-XhashCode")
}方法不在类中,生成日志中没有错误或警告。如何生成这些方法?
PS:下面是构建文件依赖项
dependencies {
implementation(project(":xxx:xxx-api"))
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.2")
xjcPlugins("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.2")
xjcPlugins("org.jvnet.jaxb2_commons:jaxb2-basics-annotate:1.1.0")
}更新
感谢@thokuest发现缺少的依赖项。
该项目有一个构建JAX2B类的gradle模块,但是添加"-Xequals“选项时生成错误:
build/generated/sources/xjc/java/org/pen/ProductOutputType.java:16: error: package org.jvnet.jaxb2_commons.locator.util does not exist
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
^
build/generated/sources/xjc/java/org/pen/ProductOutputType.java:47: error: cannot find symbol
public class ProductOutputType implements Equals2
^我创建了一个最小的示例作为一个gist -- build.gradle.kts
发布于 2021-10-15 08:37:15
equals()和hashCode()是由jaxb2 2-基础插件贡献的。
xjcPlugins 'org.jvnet.jaxb2_commons:jaxb2-basics:1.11.1'根据项目的维基,org.jvnet.jaxb2_commons:jaxb2-basics-runtime:1.11.1也需要添加一个运行时依赖项。
更新
依赖项org.jvnet.jaxb2_commons:jaxb2-basics-runtime:1.11.1必须在作用域implementation中,否则就会发生问题中描述的生成错误。
https://stackoverflow.com/questions/69578156
复制相似问题