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

dav*_*563 7 constructor cxf wsdl2java maven

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

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

Ste*_*lly 6

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

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

  • 价值构造函数正是您正在寻找的.
  • 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>
Run Code Online (Sandbox Code Playgroud)

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