Java 共享xsd文件的Maven JAXB设置
我的xsd结构生成的java代码有问题。我不太清楚如何组织与maven,所以也许有人可以给我一些建议 我有一个包含一些复杂类型的common.xsd 那我有 projectA.xsd,其中导入common.xsd projectB.xsd,其中导入common.xsdJava 共享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
<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>