2

我已将 jaxb2-maven-plugin 配置为从同一位置下的不同文件夹中提取 WSDL,并将它们解析为不同的包,因为它们提供的功能不同。在运行 mvn install 时,仅处理第一个 wsdl 而忽略第二个。将版本从 1.5 更改为 1.6 后,仅处理第二个 WSDL 而忽略第一个,这看起来有点奇怪。我希望它们都得到正确处理和打包,请提出语法/插件中需要的任何更改。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
    <execution>
        <id>xjc-rules</id>
        <goals>
            <goal>xjc</goal>
        </goals>
        <configuration>
            <schemaDirectory>src/main/resources/wsdl</schemaDirectory>
            <schemaFiles>*.wsdl</schemaFiles>
            <xmlschema>false</xmlschema>
            <wsdl>true</wsdl>
            <args>-wsdl</args>
            <packageName>com.baplc.ngs.dealing.rules</packageName>
        </configuration>
    </execution>
    <execution>
        <id>xjc-infra</id>
        <goals>
            <goal>xjc</goal>
        </goals>
        <configuration>
            <schemaDirectory>src/main/resources/wsdl/infracloud</schemaDirectory>
            <schemaFiles>*.wsdl</schemaFiles>
            <xmlschema>false</xmlschema>
            <wsdl>true</wsdl>
            <args>-wsdl</args>
            <packageName>com.baplc.ngs.dealing.informatica.cloud</packageName>
        </configuration>
    </execution>
</executions>

4

1 回答 1

1

configuration您应该在所有executions中包含以下行:

<clearOutputDir>false</clearOutputDir>

(从技术上讲,您只需要在第二次执行中包含它,但我喜欢让配置相似。)

该参数clearOutputDir默认设置为 true 并将删除 outputDirectory 的内容(默认为${project.build.directory}/generated-sources/jaxb)。

clearOutputDir设置为 true 时,第一个 WSDL 文件在第一次执行中被处理。在第二次执行中,输出目录被清除(因此从第一次执行中生成的文件被删除)并处理第二个文件。因此,您只能看到第二个文件中生成的类。

有关详细信息,请参阅文档

于 2017-12-25T19:02:17.387 回答