2014-03-12 1 views
0

XJC 개미 작업을 사용하여 gradle 스크립트에서 일부 클래스를 생성하려고합니다. 하나의 바인딩 파일 (이름 바꾸기 클래스의 경우)을 사용하지만 더 많은 (에피소드 파일)을 사용하려고하면 곧바로 문제가 발생하지 않고 작업에서 무시됩니다.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 파일을 포함하도록 시도로, 두 개의 바인딩 파일은 무시됩니다 : 더 이상 이름을 변경, 그리고 물론, 더 reusage

내게 미치겠 니? 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를 병합해도 작동하지만 아주 적은 것은 말할 것도 없습니다.

누군가가이 시점에서 나를 도울 수 있다면, 좋을 것입니다. 한편

jaxb 
{ 
    xsdDir = "schemas" 
    bindingsDir = "bindings" 
    bindings = ["SampleBinding.xjb", "AnotherOne.xjb"] 
    xjc 
    { 
    taskClassname = "com.sun.tools.xjc.XJC2Task" 
    generatePackage = "com.my.application.schema" 
    } 
} 

는, 대신 특정 파일의 XSD 폴더를 지정할 필요하며, 해당 폴더 안에 모든 스키마를 구문 분석 :

답변

0

gradle-jaxb-plugin 여러 바인딩 파일을 사용하여 수 있습니다. 그러나 문제를 우회하기는 쉽지만 지금까지 내가 가진 플러그인의 유일한 문제였습니다.

관련 문제