Maven 2 无法使用CXF使用wsdl2java和maven生成客户端代码
我正在使用mavenMaven 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&
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发出错误命令行,但当我删除标记时,我能够生成源代码。:)