如何在一次执行中使用Apache CXF codegen插件为Maven生成多个服务的源

时间:2015-08-31 18:17:11

标签: java maven pom.xml wsdl2java cxf-codegen-plugin

我目前正在使用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。

提前感谢您的帮助!

0 个答案:

没有答案