클래스 경로에 /xsd/a.xsd가있는 maven 프로젝트 A가 있습니다. 카탈로그 항목을 통해 /xsd/a.xsd를 참조하는 /xsd/b.xsd가있는 프로젝트 B도 있습니다. 카탈로그 항목은 다음과 같습니다Eclipse에서 종속성에서 가져온 스키마를 사용하여 xsd 편집
PUBLIC "http://foo.org/a" "maven:org.foo:a:jar::!/xsd/a.xsd"
참고 URL에 받는다는 프로토콜입니다. 카탈로그는 org.jvnet.jaxb2.maven2 : maven-jaxb22-plugin에 의해 사용되어 종속성의 에피소드가있는 JAXB 주석이있는 Java 클래스를 생성합니다.
지금까지 모든 것이 훌륭합니다.
이제 Eclipse에서 /xsd/b.xsd를 편집하고 싶습니다. 그것은 schemaLocation 속성없이 /xsd/a.xsd을 찾을 수
<xsd:import namespace="http://foo.org/a" />
:에 경고를보고 이클립스. Eclipse는 위에 정의 된 카탈로그 항목을 인식하지 못합니다.
발견 된 해결 방법은 이클립스/창/환경 설정/XML/XML 카탈로그에서 카탈로그 항목을 추가하는 것입니다 : (받는다는는 .m2 수있는 링크입니다)
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"
주 내 로컬 저장소에 대한 참조를하고에 종속 프로젝트의 특정 버전 a.
누구든지이 문제에 직면하고 더 나은 해결 방법을 찾았습니까?
같은 문제가 있지만 더 나은 해결 방법을 찾지 못했습니다. 또한 점 때문에 점으로'.m2' 디렉토리를 직접 가리킬 수없는 PITA입니다. – eis