CXF maven插件在错误的目录中生成类

时间:2009-07-13 13:56:10

标签: maven-2 cxf wsdl2java

我正在使用maven cxf-codegen-plugin从wsdl生成java web服务文件。 如果我试图在默认输出目录中生成文件,插件工作正常 (目标\产生来源\ 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>

谢谢, 阿龙

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

我发现问题,非常尴尬...... 因为我没有更新wsdl,插件没有生成文件...

无论如何,apache cfx文档指出: 对于CXF 2.1.4和后者,您不再需要指定<phase>,因为generate-sources是默认值。

感谢您的帮助