Search code examples
web-servicesmavenwsdlcxfcxf-codegen-plugin

Could cxf maven plugin generate classes for a directory of wsdl files?


I use cxf-codgen-plugin in maven to generate classes for web services. Here is a part of my pom.xml

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.7.1</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <wsdlOptions>

                    <wsdlOption>
                        <wsdl>${basedir}/wsdl/ws1.wsdl</wsdl>
                    </wsdlOption>

                    <wsdlOption>
                        <wsdl>${basedir}/wsdl/ws2.wsdl</wsdl>  
                    </wsdlOption>

                </wsdlOptions>

            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

The problem is every time I want to add a new WSDL I had to add a line in the pom.xml like this:

    <wsdlOption>
        <wsdl>${basedir}/wsdl/ws2.wsdl</wsdl>  
    </wsdlOption>

What I want to do is to specify a directory and cxf will generate classes for all the WSDL files in this directory.

Is there a way to do this? Thanks.


Solution

  • I found the way to do this:

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