我目前正在使用Apache CXF codegen插件(版本3.1.1)为Maven从客户端提供的WSDL生成源代码。我指定了wsdl2java目标,我想为多个服务生成代码。我知道您可以在<serviceName>
标记下指定<wsdlOption>
,但是当我尝试放置多个<serviceName>
时,或者甚至使用相同的{{1}创建另一个<wsdlOption>
时使用不同的<wsdl>
的值,它似乎忽略其中一个,只为一个服务生成类。
我发现的唯一方法是创建另一个相同的<serviceName>
块,然后更改<execution>
。我做错了什么,或者这是唯一的方法吗?以下是一个<serviceName>
的整体设置(路径和服务名称已因隐私而改变):
<execution>
我已经尝试过这两个:
<execution>
<id>generate-sources-a</id>
<phase>generate-sources</phase>
<configuration>
<encoding>UTF-8</encoding>
<defaultOptions>
<bindingFiles>
<bindingFile>binding.xjb</bindingFile>
</bindingFiles>
</defaultOptions>
<sourceRoot>${project.build.directory}/generated-sources</sourceRoot>
<wsdlRoot>${project.build.directory}/wsdl</wsdlRoot>
<includes>
<include>Path/To/WSDL/MyWSDL.wsdl</include>
</includes>
<wsdlOptions>
<wsdlOption>
<wsdl>${project.build.directory}/wsdl/Path/To/WSDL/MyWSDL.wsdl</wsdl>
<serviceName>ServiceA</serviceName>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
...和这个(在例4中使用http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html):
<wsdlOptions>
<wsdlOption>
<wsdl>${project.build.directory}/wsdl/Path/To/WSDL/MyWSDL.wsdl</wsdl>
<serviceName>ServiceA</serviceName>
<serviceName>ServiceB</serviceName>
</wsdlOption>
</wsdlOptions>
**请注意,这些服务来自我们客户提供的相同WSDL。
提前感谢您的帮助!