2012-04-15 73 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>)没有任何东西正在生成。只有手动删除目标文件夹后,插件实际上才开始生成源代码。