9

Maven用のcxf-codegen-pluginを使用して、wsdl/xsdからサーバー/クライアントを生成します。作成されたすべての型にはデフォルトのno-arg-constructorsがあり、操作が面倒です。

クラスのすべてのメンバーを引数として、Apache CXFに完全なコンストラクターも生成させる方法はありますか?

4

1 に答える 1

7

このプラグインは、xjcのファンシーラッパーです。

問題領域に対処する2つの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>

注:上記では、これがすべての実行のデフォルトになります。特定の実行に対してのみこれらのオプションを有効にする場合は、<configuration>その特定の実行にビットを追加するだけです。

于 2012-08-21T08:17:15.457 に答える