Java 共享xsd文件的Maven JAXB设置

Java 共享xsd文件的Maven JAXB设置,java,maven,binding,jaxb,Java,Maven,Binding,Jaxb,我的xsd结构生成的java代码有问题。我不太清楚如何组织与maven,所以也许有人可以给我一些建议 我有一个包含一些复杂类型的common.xsd 那我有 projectA.xsd,其中导入common.xsd projectB.xsd,其中导入common.xsd <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="de.cargosoft.edi.common" targetNamespace="de.c

我的xsd结构生成的java代码有问题。我不太清楚如何组织与maven,所以也许有人可以给我一些建议

我有一个包含一些复杂类型的common.xsd

那我有 projectA.xsd,其中导入common.xsd projectB.xsd,其中导入common.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="de.cargosoft.edi.common" targetNamespace="de.cargosoft.edi.common" elementFormDefault="qualified">
这是my common.xsd的标题

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="de.cargosoft.edi.common" targetNamespace="de.cargosoft.edi.common" elementFormDefault="qualified">
我现在正在使用这个插件:

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>src/jaxb/resources/schema</schemaDirectory>
                <schemaFiles>CargoSoftWMS_1.0.20.xsd</schemaFiles>
                <outputDirectory>src/jaxb/java</outputDirectory>
                <packageName>de.cargosoft.csedi.jaxb.wms</packageName>
                <bindingDirectory>src/jaxb/resources/schema</bindingDirectory>
                <bindingFiles>bindung.jxb</bindingFiles>
            </configuration>
        </plugin>

org.codehaus.mojo
jaxb2 maven插件
1.5
xjc
src/jaxb/resources/schema
CargoSoftWMS_1.0.20.xsd
src/jaxb/java
de.cargosoft.csedi.jaxb.wms
src/jaxb/resources/schema
bindung.jxb
但是绑定需要是什么样的呢?对于xjc,应用程序为我创建了这个绑定信息。我能告诉maven也要创造这个吗?但是如果是这样的话,我必须在common.xsd发生变化时立即将绑定文件复制到每个项目中?因此,最好使用common.xsd和两个项目xsd创建一个全局maven项目

感谢您的提示、提示和示例:-)

许多问候, 豪克

- -

----更新日期:2013年12月16日----

我只是使用了一个不同的插件,现在它可以工作了。我必须将所有XSD放在一个项目中,或者将生成的绑定文件复制到其他项目中才能工作。以下是为我工作的插件标签:

<plugins>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.7.1</version>
            <executions>
                <execution>
                    <id>schema1-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <extension>true</extension>
                        <schemaDirectory>src/jaxb/resources/schema</schemaDirectory>
                        <schemaIncludes>
                            <include>CargoSoftCommon_7.1.2.xsd</include>
                        </schemaIncludes>
                        <generatePackage>de.cargosoft.common</generatePackage>
                        <generateDirectory>${project.build.directory}/generated-sources/xjc1</generateDirectory>
                    </configuration>
                </execution>
                <execution>
                    <id>schema2-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <bindingDirectory>${project.build.directory}/generated-sources/xjc/META-INF</bindingDirectory>
                        <bindingIncludes>
                            <include>sun-jaxb.episode</include>
                        </bindingIncludes>
                        <extension>true</extension>
                        <schemaDirectory>src/jaxb/resources/schema</schemaDirectory>
                        <schemaIncludes>
                            <include>CargoSoftWMS_1.0.20.xsd</include>
                        </schemaIncludes>
                        <generatePackage>de.cargosoft.wms</generatePackage>
                        <generateDirectory>${project.build.directory}/generated-sources/xjc2</generateDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.7.1
方案1生成
生成
真的
src/jaxb/resources/schema
CargoSoftCommon_7.1.2.xsd
德卡哥特软件公司
${project.build.directory}/generated sources/xjc1
方案2生成
生成
${project.build.directory}/generated sources/xjc/META-INF
sun-jaxb
真的
src/jaxb/resources/schema
CargoSoftWMS_1.0.20.xsd
de.cargosoft.wms
${project.build.directory}/generated sources/xjc2
<plugins>
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.7.1</version>
            <executions>
                <execution>
                    <id>schema1-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <extension>true</extension>
                        <schemaDirectory>src/jaxb/resources/schema</schemaDirectory>
                        <schemaIncludes>
                            <include>CargoSoftCommon_7.1.2.xsd</include>
                        </schemaIncludes>
                        <generatePackage>de.cargosoft.common</generatePackage>
                        <generateDirectory>${project.build.directory}/generated-sources/xjc1</generateDirectory>
                    </configuration>
                </execution>
                <execution>
                    <id>schema2-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <bindingDirectory>${project.build.directory}/generated-sources/xjc/META-INF</bindingDirectory>
                        <bindingIncludes>
                            <include>sun-jaxb.episode</include>
                        </bindingIncludes>
                        <extension>true</extension>
                        <schemaDirectory>src/jaxb/resources/schema</schemaDirectory>
                        <schemaIncludes>
                            <include>CargoSoftWMS_1.0.20.xsd</include>
                        </schemaIncludes>
                        <generatePackage>de.cargosoft.wms</generatePackage>
                        <generateDirectory>${project.build.directory}/generated-sources/xjc2</generateDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>