首页 > 解决方案 > 如何在 JAXB2 maven 插件版本 2.4 中定义模式目录?

问题描述

我正在尝试在我的 pom.xml 中为我的架构定义目录。我不断收到一条错误消息,提示“此处不允许使用元素 schemaDirectory”。我猜这个版本不支持这个元素。那么如何在这个版本中定义我的架构目录呢?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <schemaDirectory>${project.basedir}src/main/resources</schemaDirectory>
        <outputDirectory>${project.basedir}src/main/java</outputDirectory>
    </configuration>
</plugin>

提前致谢!

标签: javamavenpluginspom.xmljaxb2-maven-plugin

解决方案


这对旧版本有效,例如。1.5:

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxb2-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
            <execution>
                <id>xjc</id>
                <goals>
                    <goal>xjc</goal>
                </goals>
                <configuration>
                    <schemaDirectory>${project.basedir}src/main/resources</schemaDirectory>
                    <outputDirectory>${project.basedir}src/main/java</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>

对于 2.4 版,根据文档,不再有schemaDirectory标签https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.4/xjc-mojo.html

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <outputDirectory>${project.basedir}src/main/java</outputDirectory>
        <sources>
            <source>${project.basedir}src/main/resources</source>
        </sources>
    </configuration>
</plugin>

推荐阅读