我正在尝试使用XJC ant任务在gradle脚本中生成一些类。如果我只使用一个绑定文件(对于类renaming0,但我很快就会尝试使用更多(一个剧集文件)),我生成它们没有问题,它们被任务明显忽略了。
更清楚,这个
ant.xjc(schema : 'test.xsd',
destdir:'destdir',
extension: true,
package: 'testpackage') {
classpath {
fileset(dir: project.property('jaxb.home'), includes: 'jaxb-impl.jar') // <== here I include the
}
binding(dir: project.projectDir) {
filename(name:'bindings.xml') //<== this bindings is for classes renaming
//filename(name:'previous.episode') //<== this bindings is for classes reusage
}
arg(value:"-npa")
arg(value:"-nv")
}
运行良好,类重命名就好了,但是一旦我尝试包含previous.episode文件,就会忽略这两个绑定文件:不再重命名,当然也没有重用
让我发疯的是,用cmd行xjc -nv -classpath "<haxb.home>jaxb-impl.jar" -d destdir -p testpackage -b bindings.xml -b previous.episode -extension -npa
调用XJC就像魅力一样。
另外,如果我合并bindings.xml和previous.episode,它也可以工作,但至少可以说它不太实用。
所以如果有人能在这一点上帮助我,那就太好了。
答案 0 :(得分:0)
gradle-jaxb-plugin允许使用多个绑定文件:
jaxb
{
xsdDir = "schemas"
bindingsDir = "bindings"
bindings = ["SampleBinding.xjb", "AnotherOne.xjb"]
xjc
{
taskClassname = "com.sun.tools.xjc.XJC2Task"
generatePackage = "com.my.application.schema"
}
}
另一方面,它需要指定XSD文件夹而不是特定文件,并解析该文件夹内的所有模式。但是,很容易绕过这个问题,到目前为止,这是我所拥有的插件唯一的一个问题。