2012-09-27 2 views
1

다른 프로젝트가 의존하는 Java 라이브러리가있는 경우 (Maven을 통한 .jar 종속성). 이 라이브러리에는 xs:simpleType을 정의하는 XSD 파일이 있습니다. 여기에는 xjc:javaType 요소로 주석 처리되어 간단한 유형을 해당 라이브러리의 기존 Java 클래스 및 어댑터 클래스에 매핑합니다. 이 모든 것이 잘 작동하지만 지금은 xs:complexType을 만들고 싶습니다. org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 버전 0.8.2에서 복잡한 유형 및 추가 .episode 파일로부터 일부 Java Bean을 작성하도록했습니다.JAXB 믹싱 에피소드 및 jar 라이브러리의 xjc : javaType

내 두 번째 프로젝트에서 xsd 파일을 스키마 디렉토리에 압축을 풀고 project2.xsd가 library.xsd를 가져 오도록했습니다. 단순하고 복잡한 유형을 사용하기 때문입니다. 이미 존재하는 빈의 이중 생성을 피하기 위해 episodes 태그에 종속 관계로 된 libary를 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 태그에 추가했습니다. 그러나 이제 플러그인은 xsd 파일을 구문 분석 할 수없고 모든 유형 정의 라인에서 예외를 throw한다고 불평합니다.

에피소드 사용시 약간의 문제가 있다고 생각합니까 (simpleTypes가 포함되지 않습니까?) 및 xjc:javaType 주석이 있습니까? 이 문제에 대한 해결 방법이 있습니까? 이 문제와 관련하여 웹에서 많은 것을 찾을 수 없습니다. 어떤 힌트에 감사드립니다.

은 내가 받는다는-hyperjaxb3 - 플러그인을 검사를 사용하여 같은 일을 달성 한

답변

1

어떻게 이루어집니다 : 여기

  <plugin> 
       <groupId>org.jvnet.hyperjaxb3</groupId> 
       <artifactId>maven-hyperjaxb3-plugin</artifactId> 
       <version>0.5.4</version> 
       <executions> 
       <execution> 
        <id>id1</id> 
        <inherited>false</inherited> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <args> 
          <param>-npa</param> 
         </args> 
         <generateDirectory>target/generated-sources/xjc2</generateDirectory> 
         <generatePackage>com.target.package</generatePackage> 
         <extension>true</extension> 
         <schemaIncludes> 
          <include>mine.xsd</include> 
         </schemaIncludes> 
         <forceRegenerate>false</forceRegenerate> 
         <removeOldOutput>true</removeOldOutput> 
         <verbose>true</verbose> 
        </configuration> 
       </execution> 
</executions> 
<dependencies> 
        <dependency> 
         <groupId>com.sun.xml.bind</groupId> 
         <artifactId>jaxb-impl</artifactId> 
         <version>2.1.12</version> 
        </dependency> 
       </dependencies> 
      </plugin> 

프로젝트 종속성은 다음과 같습니다

<dependencies> 
     <dependency> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-impl</artifactId> 
      <version>2.1.12</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.jvnet.hyperjaxb3</groupId> 
      <artifactId>hyperjaxb3-ejb-runtime</artifactId> 
      <version>0.3</version> 
     </dependency> 

     <!-- Roundtrip --> 
     <dependency> 
      <groupId>org.jvnet.hyperjaxb3</groupId> 
      <artifactId>hyperjaxb3-ejb-roundtrip 
      </artifactId> 
      <version>0.3</version> 
     </dependency> 
    </dependencies> 

나는 간단한의 어떤 종류가 복잡한 유형이 정의되어 있으며 매력처럼 작동합니다. 도움이 되었기를 바랍니다.