jaxb,xsd导入无法识别
我有一个jaxb插件的大问题。 我有一个项目A,我有src / main / resources / xsd / common.xsd文件。 在这个项目中,我使用cxf-xjc-plugin来生成java类。 我还有我的episod文件在src / main / resources / META-INF下名为sun-jaxb.episode
接下来,我有项目B,它对项目A有maven依赖。在这个项目中我有src / main / resources / catalog.txt
PUBLIC "http://www.some_path" "maven:GROUP_ID_OF_PROJECT_A:ARTIFACT_ID_OF_PROJECT_A:jar::!/common.xsd"
在项目BI中有pom文件和jaxb插件
org.jvnet.jaxb2.maven2 maven-jaxb2-plugin true GROUP_ID_OF_PROJECT_A ARTIFACT_ID_OF_PROJECT_A src/main/resources/catalog.txt
接下来,我在项目B中
src/main/resources/other/xsd my main.xsd
我使用common.xsd中的类型定义的文件
我有xmlns:cmns =“http://www.some_path”//它与catalog.txt中的相同
但问题是我得到错误未定义简单或复杂类型,因为它不识别cmns
我使用这个插件来解决xsd的公共导入问题
org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.1 generate-sources generate -Xannotate -Xnamespace-prefix -nv true true ${basedir}/src/main/resources/xjb *.xjb ${basedir}/src/main/resources/xsd *.xsd groupID artifactID target.xsd groupID artifactID true true org.jvnet.jaxb2_commons jaxb2-basics 0.6.2 org.jvnet.jaxb2_commons jaxb2-basics-annotate 0.6.2 org.jvnet.jaxb2_commons jaxb2-namespace-prefix 1.1
项目A的pom.xml插件
org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.1 generate-sources generate -Xannotate -nv -Xnamespace-prefix true ${basedir}/src/main/resources/xsd/ A.xsd src/main/resources/xjb *.xjb true true true org.jvnet.jaxb2_commons jaxb2-basics 0.6.0 org.jvnet.jaxb2_commons jaxb2-basics-annotate 0.6.0 org.jvnet.jaxb2_commons jaxb2-namespace-prefix 1.1
项目B的pom.xml插件
org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.1 generate-sources generate -Xannotate -Xnamespace-prefix -nv true true ${basedir}/src/main/resources/xjb *.xjb ${basedir}/src/main/resources/xsd/ B.xsd AgroupID AartifactID xsd/A.xsd AgroupID AartifactID true true org.jvnet.jaxb2_commons jaxb2-basics 0.6.2 org.jvnet.jaxb2_commons jaxb2-basics-annotate 0.6.2 org.jvnet.jaxb2_commons jaxb2-namespace-prefix 1.1
您必须在项目B之前执行项目A的mvn安装
添加此插件以添加到源目标生成的类
org.codehaus.mojo build-helper-maven-plugin 1.1 add-source generate-sources add-source target/generated-sources/xjc
记得执行Maven – 更新项目