6

jaxws-maven-plugin のwsimportゴールを使用して、WSDL から Java クラスを生成しています。これはすぐに使用できるものであり、XML スキーマからおぞましいクラスとメソッドを生成します。たとえば、MY_OBJECT という名前の XML 要素から MYOBJECT というクラスを呼び出します。

外部ファイルを使用して JAXB2 バインディングをカスタマイズできることがわかりました。これは少数のクラスとメソッドでは許容されますが、この場合すべてに手動で名前を付けるオーバーヘッドは望ましくありません。

一部の検索では、XJC CamelCase Alwaysプラグインへの参照が明らかになりますが、これは維持されていないようで、ほとんどのリンクは 404 です。あきらめたくないので、この機能を提供しているように見えるキャメルケースを常に使用する Maven アーティファクトを見つけましたが、jaxws-maven-plugin がそれを使用するようにこれを構成する方法がわかりません。

すべてを手動で指定せずに CamelCase バインディングを取得するにはどうすればよいですか?

4

2 に答える 2

5

でこれを行う方法の例は見つかりませんでしたjaxws-maven-pluginが、を使用して例を見つけましたmaven-jaxb2-plugin

まず、POMにリポジトリを追加する必要があります。

<repository>
    <id>releases</id>
    <name>Releases</name>
    <url>https://oss.sonatype.org/content/repositories/releases</url>
</repository>

maven-jaxb2-plugin実行に追加されたプラグイン宣言と引数に注意してください。

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.8.0</version>
    <executions>
        <execution>
            <id>jaxb-generate</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <generatePackage>YOUR.PACKAGE.HERE</generatePackage>
        <args>
            <arg>-camelcase-always</arg>
        </args>
        <bindingDirectory>src/main/binding</bindingDirectory>
        <schemas>
            <schema>
                <url>http://YOUR.WSDL.HERE</url>
            </schema>
        </schemas>
        <extension>true</extension>
        <plugins>
            <plugin>
                <groupId>org.andromda.thirdparty.jaxb2_commons</groupId>
                <artifactId>camelcase-always</artifactId>
                <version>1.0</version>
            </plugin>
        </plugins>
    </configuration>
</plugin>

詳細については、ドキュメントを参照してください。

于 2012-01-19T20:36:50.980 に答える