Jaxb 2 Maven 插件 - 如何让 maven 尊重 XSD 命名空间



根据任何 maven 的 jaxb2 插件,我有一个问题。我想从 XSD 架构生成源代码。通常,如果我从命令行运行 xjc,xjc 会根据它们的命名空间生成所有源代码(如 core:AccountType 到 core/AccountType.java等)

cmd> xjc PublEnvlp.xsd

我想使用一些 maven 插件使用相同的功能,但它将所有 java 类创建到一个目录,因此存在重复冲突。是否有任何标志,插件,功能,...使 Maven 与命令行 XJC 命令相同? 我在 maven 中使用下面的代码:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3.1</version>
<executions>
    <execution>
        <id>xjc</id>
        <goals>
            <goal>xjc</goal>
        </goals>
        <configuration>
            <packageName>package.name</packageName>
            <schemaDirectory>src/main/resources/DataArchitecture/XML/RDF/Physical_Xml</schemaDirectory>
            <forceRegenerate>true</forceRegenerate>
            <verbose>true</verbose>
        </configuration>
    </execution>
</executions>

尝试一下没有<packageName>package.name</packageName>,它应该将它们放在适当的子目录中。

编辑:你可能会有更多的运气与org.jvnet.jaxb2.maven2:maven-jaxb2-plugin

maven-jaxb2-plugin 调用 XJC,这尊重命名空间。您可以使用绑定来自定义包名称,但即使没有绑定,也应该根据命名空间获取包名称。你可能在其他地方有问题。

最新更新