2013-12-10 63 views
8

您是否知道为生成的JAXB类生成Builder模式类的好JAXB插件?使用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文件下面的代码片段,使用Maven的cxf-xjc-plugin生成JAXB类和还利用jaxb-fluent-api大头钉,上fluent interfaces ...这是不完全靠自己一个完整的构建者模式...但我认为他们留下了空间让人们朝这个方向取得体面的进展。

 <!-- 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生成的类生成流利的构建器。 有上

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

它包含了一些有用的插件JAXB一个github上的项目。 你可以从github下载源文件和二进制文件, 或者获取来自The Central Repository的文件工件

希望这有助于。如果您有任何问题,只需问我,我是开始的人。

+0

从dtd生成类时,可以使用插件生成构建器吗? – mejas

+0

虽然似乎还没有人尝试过,但我会认为它不适用于DTD。 –

相关问题