2014-07-22 77 views
1

我正在使用JAXB插件,並且需要爲至少幾十個模式生成類。 我將如何動態創建對應於每個模式的軟件包?maven插件 - jaxb - 創建JAXB類

schema 1 -> package x.y.z.schema1 
schema 2 -> package x.y.z.schema2..... 

JAXB2 Maven插件中提到的樣式使得您的pom.xml非常混亂。

通過JAXB2幫助頁面上提示:

<execution> 
       <id>xjc-schema1</id> 
       <goals> 
        <goal>xjc</goal> 
       </goals> 
       <configuration> 
        <schemaFiles>schema1.xsd</schemaFiles> 
        <packageName>com.example.foo</packageName> 
       </configuration> 
      </execution> 
      <execution> 
       <id>xjc-schema2</id> 

另外,我認爲一個解決辦法將是對這一CONFIGS存儲在一個單獨的XML文件,但我不知道該怎麼做包括這在行家

回答

0

你有沒有嘗試使用綁定文件? 我用來做與像綁定文件:

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

    <jaxb:bindings schemaLocation="../xsd/mySchema1.xsd" 
     node="/xsd:schema"> 
     <jaxb:schemaBindings> 
      <jaxb:package name="my.package.schema1" /> 
     </jaxb:schemaBindings> 
    </jaxb:bindings> 

    <jaxb:bindings schemaLocation="../xsd/mySchema2.xsd" 
     node="/xsd:schema"> 
     <jaxb:schemaBindings> 
      <jaxb:package name="my.package.schema2" /> 
     </jaxb:schemaBindings> 
    </jaxb:bindings> 
</jaxb:bindings> 

所以,在你的POM中指定的所有XSD的只有文件夾和路徑綁定文件