我有一个Maven项目A,它的类路径中有一个/xsd/a.xsd。我还有一个带有 /xsd/b.xsd 的项目 B,它通过目录条目引用 /xsd/a.xsd。目录条目如下所示:
PUBLIC "http://foo.org/a" "maven:org.foo:a:jar::!/xsd/a.xsd"
注意 url 中的 maven 协议。org.jvnet.jaxb2.maven2:maven-jaxb22-plugin 使用该目录来生成带有来自依赖项的情节的 JAXB 注释 Java 类。
到目前为止一切都很好。
现在我想在 Eclipse 中编辑 /xsd/b.xsd。Eclipse 报告以下警告:
<xsd:import namespace="http://foo.org/a" />
因为它找不到 /xsd/a.xsd 没有 schemaLocation 属性。Eclipse 无法识别上面定义的目录条目。
找到的解决方法是在 Eclipse / Window / Preferences / XML / XML Catalog 中添加一个目录条目:
PUBLIC "http://foo.org/a" "jar:file:/home/alain/maven/repository/org/foo/a/1.0-SNAPSHOT/a-1.0-SNAPSHOT.jar!/xsd/a.xsd"
请注意对我的本地存储库(maven 是指向 .m2 的链接)和依赖项目的特定版本的引用。
有没有人遇到过这个问题并找到了更好的解决方法?