2012-04-15 6 views
15

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

抽出物は、以下:非常に私は(成功した)私のプロジェクトの一つで、そのプラグインを設定方法のように見えます

<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> 

答えて

18

を。私はそれが働くことを期待します。 (私はあなたが<sourceRoot>を省略することができると信じています;それは既定の設定はあなたが述べたものです)

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

+0

プラグイン管理されていました。ありがとう – Vespasian

+0

@Vespasianお手伝いをお待ちしています。 –

2

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

0

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

関連する問題