18

cxf-codegen-pluginを取得してwsdlファイルからソースを生成しようとしています。wsdl2javaマニュアルを呼び出すと、目的のクラスが生成されますが、mvn generate-sourcesを使用すると何も起こらず、「プロジェクトに目標は必要ありません」というメッセージが表示されます。プラグインを直接呼び出すことは役に立ちません。

私のpomsからの抜粋は次のとおりです。

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.5.2</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/src/main/MyServiceInterface.wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>
4

3 に答える 3

23

これは、私のプロジェクトの1つでそのプラグインを(正常に)構成する方法と非常によく似ています。私はそれがうまくいくことを期待します。(私はあなたが省略できると信じています<sourceRoot>;そのデフォルト設定はあなたが述べたものです。)

私が考えることができる唯一のことは、プラグイン構成を非アクティブなMavenプロファイルに配置したか、(より可能性が高いのは)<pluginManagement>ストレート<plugins>セクションではなくセクションに配置したかどうかです。pluginManagementセクションは、プラグインの構成の側面をオーバーライドしますが、実際にはプラグインを使用できるようにはしません。(ただし、明示的な使用には影響します。あなたがそれをしたくないことはわかっています。)

于 2012-04-15T18:12:27.723 に答える
2

少なくとも私の場合は、ソースコードも生成されていないと思っていましたが、実際には生成されていました。問題は、フォルダーtarget /generated / cxfがEclipseによってソースフォルダーとして指定されていたことでしたが、これは手動では行いませんでした。そのため、ソースはプロジェクトの上部にあり、パッケージ構造であり、下のフォルダー構造ではありませんでした。これは、私が探していた場所であり、期待していた場所です。

于 2012-04-27T15:39:59.327 に答える
0

私の場合、古いターゲットディレクトリ(で定義されている)がある限り、<sourceRoot>/path/to/target</sourceRoot>何も生成されていませんでした。ターゲットフォルダを手動で削除した後でのみ、プラグインは実際にソースの生成を開始しました。

于 2016-06-26T13:05:38.183 に答える