多个WSDL Urls使用maven-jaxb2-plugin生成源代码

时间:2016-10-05 01:44:32

标签: java maven maven-jaxb2-plugin

<!-- tag::wsdl[] -->
<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.12.3</version>
    <executions>
        <execution>
            <id>firstrun</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>my.package.osb.services.wsdl1</generatePackage>
                <schemas>
                    <schema>
                        <url>http://x.x.x.x:8002/wsdl1?wsdl</url>
                    </schema>
                </schemas>
            </configuration>
        </execution>
        <execution>
            <id>secondrun</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
            <schemaLanguage>WSDL</schemaLanguage>
            <generatePackage>my.package.osb.services.wsdl2</generatePackage>
            <schemas>
                <schema>
                    <url>http://x.x.x.x:8002/wsdl2?wsdl</url>
                </schema>
            </schemas>
            </configuration>
        </execution>
    </executions>
</plugin>
<!-- end::wsdl[] -->

我的理解是上面应该在两个不同的包中生成两个URL中描述的POJO。

我不明白为什么它不起作用。我在mvn jaxb2:generate之后收到的错误是No schemas to compile. Skipping XJC execution.

请一个人提供一个完整的解决方案,如何正确地使用 WSDL网址

1 个答案:

答案 0 :(得分:0)

如果您运行mvn jaxb2:generate maven并未在执行中使用configuration

您已经声明了应该绑定执行的phase,因此请运行mvn generate-sources

https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag说:

  

注意: <executions>标记内的配置与<executions>之外的配置不同,因为它们无法在直接命令行调用中使用。相反,它们仅在调用它们绑定的生命周期阶段时应用。或者,如果您将配置部分移到执行部分之外,它将全局应用于插件的所有调用。