2012-04-15 45 views
15

我試圖讓CXF-CODEGEN-插件生成從我的wsdl文件的來源。當調用WSDL2Java的手動生成所需的類,但使用MVN產生來源時什麼也沒發生,我得到的消息「沒有需要的項目目標」。直接調用插件不會有幫助。CXF-CODEGEN-插件不會產生源

提取從我的勁歌如下:

<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輪廓或(更可能)在<pluginManagement>部分而不是直<plugins>部; pluginManagement部分覆蓋插件配置的各個方面,但實際上並未啓用它們以供使用。 (但它確實影響了顯式的使用;我知道你不想這樣做。)

+0

pluginManagement它。謝謝 – Vespasian 2012-04-15 18:22:20

+0

@Vespasian樂於助人。 – 2012-04-15 18:22:59

2

至少在我的情況下,我認爲它並沒有生成源代碼,但它實際上是。問題是,產生/ CXF的文件夾目標/由Eclipse中指定爲源文件夾,我沒有做手工。因此,來源是向我的項目的頂部,在封裝結構,而不是在下面的文件夾結構,這就是我一直在尋找,並希望它是。

0

在我的情況下,只要我有舊的目標目錄(定義在<sourceRoot>/path/to/target</sourceRoot>)沒有任何東西正在生成。只有手動刪除目標文件夾後,插件實際上纔開始生成源代碼。