Maven jaxb生成插件以从多个目录中读取xsd文件

时间:2012-08-05 11:39:39

标签: java maven xsd jaxb

如果我在以下目录中有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>

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

由于

2 个答案:

答案 0 :(得分:8)

你可以试试这个配置:

<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

答案 1 :(得分:2)

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

在这种情况下最好的事情是拥有一个单独的模块,其中只包含模式和可能的一些支持类。