2014-03-12 63 views
0

我正在嘗試使用XJC ant任務在gradle腳本中生成一些類。如果我只使用一個綁定文件(對於類renaming0,但是我儘可能多地使用它(一個情節文件),那麼我沒有任何問題來生成它們),但是它們被任務忽略掉了。這我如何讓XJC ant任務使用多個綁定文件?

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文件,這兩個文件的綁定忽略:不重命名,當然沒有回用

讓我瘋狂的是,致電XJC的CMD行xjc -nv -classpath "<haxb.home>jaxb-impl.jar" -d destdir -p testpackage -b bindings.xml -b previous.episode -extension -npa像魅力一樣工作

另外,如果我合併bindings.xml和previous.episode,它也可以工作,但至少可以說這不太實際。

所以如果有人能夠幫助我這一點,這將是美好的。

回答

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文件夾而不是一個特定的文件,並解析該文件夾的內的所有模式。但是,繞過這個問題很容易,到目前爲止,這是我擁有的插件中唯一的問題。

相關問題