首页 > 解决方案 > 如何在 CXF Maven 插件中配置多个 .wsdl

问题描述

在以下示例中,我能够配置 WSDL。

<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/cxf</sourceRoot>
                <wsdlOptions>
                    <!-- for myService1.wsdl -->
                    <wsdlOption>
                        <wsdl>${basedir}/src/main/wsdl/myService1.wsdl</wsdl>
                    </wsdlOption>
                    <!-- for myService2.wsdl -->
                    <wsdlOption>
                        <wsdl>${basedir}/src/main/wsdl/myService2.wsdl</wsdl>
                    </wsdlOption>
                    . . .
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

但我的问题是,如果我有 100 个或更多 WSDL,那么我需要添加 100 个或更多次。

是否有任何通用方法可以在 pom.xml 文件中多次避免这种情况。

标签: javasoapwsdlcxf

解决方案


可以指定该<wsdlRoot>元素以使用多个 wsdls,而无需显式引用它们。

<includes>可以用来进一步选择下的wsdls<wsdlRoot>

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

https://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html#Mavencxf-codegen-plugin(WSDLtoJava)-Example5:UsingwsdlRootwithincludes/excludespatterns


推荐阅读