这个主题很老,但在企业业务环境中仍然有意义。我试图避免触摸xsds,以便将来轻松更新它们。这是我的解决方案。
1.大部分xjc:simple就足够了
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jxb:bindings version="2.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    jxb:extensionBindingPrefixes="xjc">
    <jxb:globalBindings>
        <xjc:simple/> <!-- adds @XmlRootElement annotations -->
    </jxb:globalBindings>
</jxb:bindings>
它将主要创建用于导入xsd定义的XmlRootElements。
2.划分您的jaxb2-maven-plugin处决
我曾经遇到过,如果您尝试从多个xsd定义而不是每个xsd的执行定义生成类,它将产生巨大的差异。 
因此,如果您的定义包含多个<source>,则不要尝试拆分它们:
          <execution>
            <id>xjc-schema-1</id>
            <goals>
              <goal>xjc</goal>
            </goals>
            <configuration>
              <xjbSources>
                <xjbSource>src/main/resources/xsd/binding.xjb</xjbSource>
              </xjbSources>
              <sources>
                <source>src/main/resources/xsd/definition1/</source>
              </sources>
              <clearOutputDir>false</clearOutputDir>
            </configuration>
          </execution>
          <execution>
            <id>xjc-schema-2</id>
            <goals>
              <goal>xjc</goal>
            </goals>
            <configuration>
              <xjbSources>
                <xjbSource>src/main/resources/xsd/binding.xjb</xjbSource>
              </xjbSources>
              <sources>
                <source>src/main/resources/xsd/definition2/</source>
              </sources>
              <clearOutputDir>false</clearOutputDir>
            </configuration>
          </execution>
生成器不会捕捉到一个类可能已足够的事实,因此每次执行都会创建自定义类。那正是我所需要的;)。