【问题标题】:Maven jaxb generate plugin to read xsd files from multiple directoriesMaven jaxb 生成插件以从多个目录读取 xsd 文件
【发布时间】:2012-08-05 11:39:39
【问题描述】:

如果我在以下目录中有 xsd 文件

src/main/resources/xsd
src/main/resources/schema/common
src/main/resources/schema/soap

如何指示 maven jaxb 插件使用上述目录中的所有模式文件生成 jaxb 类?如果我指定其中一个文件夹,我可以让它生成类文件,但我不知道如何包含所有三个文件夹。

这是我为一个文件夹生成文件的方法:

<plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>src/main/resources/xsd</schemaDirectory>
            </configuration>
        </plugin>

我尝试在元素中添加多个条目,但如果我这样做,它只会忽略所有条目。

谢谢

【问题讨论】:

    标签: java maven xsd jaxb


    【解决方案1】:

    你可以试试这个配置:

    <configuration>
            <schemaDirectory>src/main/resources</schemaDirectory>
        <schemaIncludes>
            <include>xsd/*.xsd</include>
                <include>schema/*/*.xsd</include>
        </schemaIncludes>
    </configuration>
    

    来源:http://confluence.highsource.org/display/MJIIP/User+Guide

    【讨论】:

      【解决方案2】:

      插件描述将架构文件放入src/main/resources,而不是放入子文件夹。我建议在约定优于配置的意义上使用插件的默认值。此外,让架构包含正确的文件(包括正确的文件夹)也很重要。

      在这种情况下最好的办法是有一个单独的模块,它只包含模式和一些支持类。

      【讨论】:

      • 是的,我遇到的问题是模式位于特定目录中,因为它们是按模块组织的。如果我将它们全部放在同一个文件夹中,我将在不需要的地方包含 Jaxb 类。
      猜你喜欢
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多