cxf-codegen-plugin不会生成源

时间:2012-04-15 17:50:59

标签: java maven cxf wsdl2java

我正在尝试使用 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>

3 个答案:

答案 0 :(得分:19)

这看起来非常像我(在其中一个项目中)成功配置该插件的方式;我希望这能奏效。 (我相信你可以省略<sourceRoot>;默认设置就是你说的那个。)

我唯一能想到的是,如果您将该插件配置放在非活动Maven配置文件中,或者(更有可能)放在<pluginManagement>部分而不是直接<plugins>部分; pluginManagement部分会覆盖插件配置的各个方面,但实际上并未启用它们。 (但它会影响显式使用;我知道你不想这样做。)

答案 1 :(得分:2)

至少在我的情况下,我认为它也没有生成源代码,但它实际上是。问题是文件夹target / generated / cxf被Eclipse指定为源文件夹,我没有手动完成。所以源代码是我的项目的顶部,在包结构中,而不是在下面的文件夹结构中,这是我正在寻找并期待它的位置。

答案 2 :(得分:0)

在我的情况下,只要我有旧目标目录(在<sourceRoot>/path/to/target</sourceRoot>中定义),就没有生成任何内容。只有在手动删除目标文件夹后,插件实际上才开始生成源。