Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在为特定模式生成的jar中忽略导入模式中的类_Java_Xml_Xsd_Jaxb_Maven Jaxb2 Plugin - Fatal编程技术网

Java 如何在为特定模式生成的jar中忽略导入模式中的类

Java 如何在为特定模式生成的jar中忽略导入模式中的类,java,xml,xsd,jaxb,maven-jaxb2-plugin,Java,Xml,Xsd,Jaxb,Maven Jaxb2 Plugin,我有一个xsd文件a.xsd,它导入另一个xsd b.xsd。我想创建一个包含所有来自a.xsd的类的jar,但忽略从b.xsd生成的类。我的pom文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:

我有一个xsd文件a.xsd,它导入另一个xsd b.xsd。我想创建一个包含所有来自a.xsd的类的jar,但忽略从b.xsd生成的类。我的pom文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.personal.proj</groupId>
    <artifactId>schema-model</artifactId>
    <version>1.0.0</version>
    <name>SchemaModel</name>
    <build>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.12.3</version>
                <executions>
                    <execution>
                        <id>id</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <schemaDirectory>src/main/xsd</schemaDirectory>
                            <schemaIncludes>
                                <include>a.xsd</include>
                            </schemaIncludes>
                            <schemaExcludes>
                                <exclude>b.xsd</exclude>
                            </schemaExcludes>
                            <forceRegenerate>true</forceRegenerate>
                            <removeOldOutput>true</removeOldOutput>
                            <bindingDirectory>src/main/xsd</bindingDirectory>
                            <bindingIncludes>
                                <include>schema.xjb</include>
                            </bindingIncludes>
                            <generateDirectory>${project.build.directory}/generated-sources</generateDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
com.personal.proj
显示了如何执行此操作,但我无法对其进行配置。如果我需要添加剧集,我需要在同一版本中生成它(b.eposit),并使用它生成a.jar

使用
map=“false”
on
b.xsd
绑定:

<jxb:bindings schemaLocation="b.xsd" node="/xs:schema">
    <jxb:schemaBindings map="false">
        <jxb:package name="com.b.model" />
    </jxb:schemaBindings>
</jxb:bindings>

仍然可能会生成一些类(XJC在这方面有一些问题)。我经常在构建的后处理步骤中删除它们

我通常推荐使用这种东西。这是一个例子


免责声明:我是。

的作者,我终于能够将这些类分开了。感谢示例项目。我的jar文件也由xsd文件组成。我怎么能忽视这些?
<jxb:bindings schemaLocation="b.xsd" node="/xs:schema">
    <jxb:schemaBindings map="false">
        <jxb:package name="com.b.model" />
    </jxb:schemaBindings>
</jxb:bindings>