在为Maven使用cxf-codegen-plugin时,ApacheCXF能否生成完整的构造函数?

时间:2011-03-30 14:57:41

标签: maven constructor cxf wsdl2java

我使用maven的cxf-codegen-plugin从我的wsdl / xsd生成服务器/客户端。创建的所有类型都有默认的no-arg-constructors,这使得它们很难使用。

有没有办法让Apache CXF生成一个完整的构造函数,并且该类的所有成员都作为参数?

1 个答案:

答案 0 :(得分:6)

这个插件只是围绕xjc的一个奇特的包装。

有两个xjc插件可以解决您的问题空间:

  • Value-constructor正是您要找的。
  • Fluent-api并不完全是你想要的,但很多人更喜欢流利的api来重视构造者。

您需要添加所需的依赖项,然后配置插件以在xjc中启用这些插件,例如

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <configuration>
    <defaultOptions>
      <extraargs>
        <extraarg>-xjc-Xvalue-constructor</extraarg>
      </extraargs>
    </defaultOptions>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.jvnet.jaxb2_commons</groupId>
      <artifactId>jaxb2-value-constructor</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>org.jvnet.jaxb2_commons</groupId>
      <artifactId>jaxb2-basics</artifactId>
      <version>0.6.4</version>
    </dependency>
  </dependencies>
</plugin>

注意:如果您只想为特定执行启用这些选项,则上述内容使其成为所有执行的默认值,然后只需将<configuration>位添加到该特定执行中。