使用maven-jaxb2-plugin从多个wsdl文件生成类



我可以从一个wsdl文件生成类,如下所示:

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.12.3</version>
    <configuration>
        <schemaLanguage>WSDL</schemaLanguage>
        <schemaDirectory>src/main/resources</schemaDirectory>
        <schemaIncludes>
            <include>bwl_1_1.wsdl</include>
        </schemaIncludes>
        <generatePackage>bwl.wsdl</generatePackage>
        <generateDirectory>${project.build.directory}/generated-sources/bwl</generateDirectory>
    </configuration>
</plugin>

当我尝试使用多个<plugin>时,只生成其中一个。我发现,如果我想从多个文件生成类,我应该使用<executions>。然而,当我将<configuration>封装到<executions>中时,它不再生成,事实上它从目录中的xsd文件生成了一些东西。。。

我的失败尝试:

    <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.12.3</version>
        <executions>
            <execution>
                <id>bwl</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <schemaDirectory>src/main/resources</schemaDirectory>
                    <schemaIncludes>
                        <include>bwl_1_1.wsdl</include>
                    </schemaIncludes>
                    <generatePackage>bwl.wsdl</generatePackage>
                    <generateDirectory>${project.build.directory}/generated-sources/bwl</generateDirectory>
                </configuration>
            </execution>
            <execution>
                <id>score</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <schemaDirectory>src/main/resources</schemaDirectory>
                    <schemaIncludes>
                        <include>score_1_1.wsdl</include>
                    </schemaIncludes>
                    <generatePackage>score.wsdl</generatePackage>
                    <generateDirectory>${project.build.directory}/generated-sources/score</generateDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>

谢谢。

<schemaDirectory>标签中的路径前面添加${basedir},如下所示

<schemaDirectory>${basedir}/src/main/resources</schemaDirectory>

那就行了!

最新更新