Maven 2 无法使用CXF使用wsdl2java和maven生成客户端代码

Maven 2 无法使用CXF使用wsdl2java和maven生成客户端代码,maven-2,cxf,wsdl2java,Maven 2,Cxf,Wsdl2java,我正在使用mavencxfcodegen插件从wsdl生成客户机文件,但无法这样做 我希望扫描文件夹src/main/wsdl中的所有wsdl文件,并在单独的文件夹中生成相应的客户机。请帮忙 我的pom.xml是: <build> <finalName>someFileName</finalName> <pluginManagement> <plugins> <plugin&

我正在使用maven
cxfcodegen插件
从wsdl生成客户机文件,但无法这样做

我希望扫描文件夹
src/main/wsdl
中的所有wsdl文件,并在单独的文件夹中生成相应的客户机。请帮忙

我的pom.xml是:

<build>
    <finalName>someFileName</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                 <groupId>org.apache.cxf</groupId>
                 <artifactId>cxf-codegen-plugin</artifactId>
                 <version>2.2.3</version>
                 <executions>
                     <execution>
                        <id>generate-sources</id>
                        <phase>process-resources</phase>
                         <configuration>
                             <sourceRoot>src/main/java</sourceRoot>
                             <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot> 
                        </configuration>
                         <goals>
                             <goal>wsdl2java</goal>
                         </goals>
                     </execution>
                 </executions>
             </plugin>
         </plugins>
    </pluginManagement>
</build>

文件名
org.apache.cxf
cxf-codegen插件
2.2.3
生成源
过程资源
src/main/java
${basedir}/src/main/wsdl
wsdl2java

以下是我在2.7.4版中的做法,并在不同的软件包中创建生成的代码:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${project.build.directory}/generated/src/main/java</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>${basedir}/src/main/wsdl/MyWsdl1.wsdl</wsdl>
                                <extraargs>
                                    <extraarg>-client</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>urn:mycompany:myproduct1:v1_0=com.my.project.product1</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>http://www.w3.org/2001/XMLSchema=com.my.project.common</extraarg>
                                </extraargs>
                            </wsdlOption>
                            <wsdlOption>
                                <wsdl>${basedir}/src/main/wsdl/MyWsdl2.wsdl</wsdl>
                                <extraargs>
                                    <extraarg>-client</extraarg>
                                    <extraarg>-verbose</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>urn:mycompany:myproduct2:v1_0=com.my.project.product2</extraarg>
                                    <extraarg>-p</extraarg>
                                    <extraarg>http://www.w3.org/2001/XMLSchema=com.my.project.common</extraarg>
                                </extraargs>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

org.apache.cxf

对于wsdl文件夹的自动扫描,这也很有效:

<configuration>
                        <sourceRoot>${project.build.directory}/generated/src/main/java</sourceRoot>
                        <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot>
<includes>
    <include>**/*.wsdl</include>
</includes>
</configuration>

${project.build.directory}/generated/src/main/java
${basedir}/src/main/wsdl
**/*.wsdl

希望有帮助

我意识到这是一个老问题,但我刚刚遇到了这个问题,所以我想为其他人的利益而回答。您对
标记的注释是正确的,请参阅。但是Eclipse中的错误是:

生命周期配置不包括插件执行


您需要安装m2e connector for build helper maven插件(单击错误,Eclipse应指导您安装)

我将
插件
标记放在
插件管理
标记内,错误消失:

<pluginManagement>
   <plugins>
        <plugin>

            ..........................

        </plugin>
   </plugins> 
</pluginManagement>

..........................

您得到的错误是什么?我没有得到任何错误。但是当我从pom.xml中删除时,没有生成客户端文件,那么我就能够成功地生成这些文件。但是eclipse在标记ie“插件执行未包含在生命周期配置中”处显示错误,但是构建成功了不要打扰eclipse。尝试清理elipse..构建成功后..您需要一个更新得多的CXF版本来满足m2e的生命周期要求。2.2.3完全早于m2e。我想标签是不必要的。你怎么写标签?当我试着发布这篇文章时,标签并没有显示出来。尽管Eclipse发出错误命令行,但当我删除标记时,我能够生成源代码。:)