2013-12-10 5 views
8

生成されたJAXBクラスのBuilderパターンクラスを生成した良いJAXB Pluginを知っていますか? JAXBで生成されたクラスを使用してドメインを作成するのは本当に面倒です。 2010年に誰かが書いたプラグインを見ましたが、最新のmavenプラグインjaxb2-maven-pluginを使用していません。また、堅牢でない各スキーマタイプに対してバインディングを指定する必要があります。ビルダーを生成するJAXBプラグインはありますか?

+0

ObjectFactoryクラスを生成していますか? –

+1

'jaxb-fluent-api'が' cxf-xjc-plugin'で何らかの形で設定されていれば、それは素晴らしい解決策になるかもしれませんが、それが可能なのかどうかはわかりません。それ以外の場合は、既にあなたがretepToolsを見つけた可能性があります:http://blog.retep.org/2010/05/18/implementing-builders-with-jaxb-generated-objects/2/ – pulkitsinghal

+0

このプラグインは不変のクラスとオプションのビルダー - https://github.com/sabomichal/immutable-xjc – miso

答えて

3

pom.xmlファイルから次のスニペット、正確に自分の上に完全なBuilderパターンではありませんJAXBクラスともタックオンfluent interfacesjaxb-fluent-apiを活用し...生成するのmaven cxf-xjc-pluginを使用しています...しかし、私は思います彼らは人々がその方向にまともな進路を作るための余地を残す。

 <!-- Used to generate source code based on XSD (schema) file --> 
     <!-- http://cxf.apache.org/cxf-xjc-plugin.html --> 
     <plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-xjc-plugin</artifactId> 
      <version>2.7.7</version> 
      <configuration> 
       <extensions> 
        <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension> 
       </extensions> 
      </configuration> 
      <executions> 
       <execution> 
        <id>generate-xsd-sources</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xsdtojava</goal> 
        </goals> 
        <configuration> 
         <sourceRoot>${basedir}/target/generated-sources/cxf-xjc/</sourceRoot> 
         <xsdOptions> 
          <xsdOption> 
           <xsd>${basedir}/src/main/wsdl/your.xsd</xsd> 
           <packagename>com.your.package.name</packagename> 
           <extensionArgs> 
            <extensionArg>-Xfluent-api</extensionArg> 
           </extensionArgs> 
          </xsdOption> 
         </xsdOptions> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
6

はい、JAXB生成クラス用の流暢なビルダーを生成するプラグインがあります。 に便利JAXBプラグインのカップルが含まれてい

https://github.com/mklemm/jaxb2-rich-contract-plugin

にgithubのプロジェクトがあります。 githubからソースとバイナリをダウンロードすることができます。 The Central Repository

これは役に立ちます。ご質問がありましたら、私に尋ねてください。私はそれを始める人です。

+0

dtdからクラスを生成するときにプラグインを使用してビルダーを生成できますか? – mejas

+0

誰もまだ試してみていないようだが、私はそれがDTDではうまくいかないと思います。 –

関連する問題