3

我正在使用 maven cxf-codegen-plugin 从 wsdl 生成 java web 服务文件。如果我尝试在默认输出目录 (target\generated-sources\cxf) 中生成文件,该插件可以正常工作,但如果我尝试使用以下命令在其他目录中生成它们:

<sourceRoot>src/main/myOtherDir</sourceRoot>

在我的 pom.xml 中,只有当我这样做时才会生成文件:

mvn clean eclipse:eclipse

如果我做

mvn eclipse:eclipse 

如果没有“干净”,则不会生成文件...

有人有什么主意吗....?

我的pom:

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <configuration>
                        <sourceRoot>src/main/myOtherDir</sourceRoot> 
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/wsdl/AccountWS.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

谢谢, 阿隆

4

2 回答 2

3

您最好将 sourceRoot 设置在目标目录下方,以便与其他内容一起清理,例如:

<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>

为确保插件始终执行,您需要将其绑定到一个阶段,例如

<executions>
  <execution>
    <id>generate-sources</id>
    <phase>process-resources</phase>
    ...
    <goals>
      <goal>wsdl2java</goal>
    </goals>
  </execution>
于 2009-07-13T15:12:34.770 回答
1

好吧我发现了问题,很尴尬……因为我没有更新wsdl,所以插件没有生成文件……

无论如何,apache cfx 文档指出:对于 CXF 2.1.4 及更高版本,您不再需要指定<phase>,因为 generate-sources 是默认设置。

谢谢你的帮助

于 2009-07-14T08:54:51.183 回答