최근에 위에서 언급 한 세 가지 플러그인을 시도했습니다 (여기에 포함).
- maven-jaxb2-plugin ( http://maven-jaxb2-plugin.java.net/ )
- maven-jaxb-plugin ( https://jaxb.dev.java.net/jaxb-maven2-plugin/)
- jaxb2-maven-plugin ( http://mojo.codehaus.org/jaxb2-maven-plugin/ )
CXF XJC Maven Plugin http://cxf.apache.org/cxf-xjc-plugin.html : 네 번째 옵션을 사용하여 끝났습니다 .
내가 알고 싶은 것이 누락되었지만 구성하려고하는 것이 더 간단 해 보였고 동일한 네임 스페이스 내에서 중복 클래스 생성을 처리 할 수있게되었습니다.이 질문과 유사합니다 . JAXB의 여러 .xsd 파일에서 중복 요소 정의를 처리하는 방법은 무엇입니까?.
이제 각 들어오는 XSD 및 해당 Java 패키지를 세부적으로 제어 할 수 있습니다. 다음은 내가 사용하는 구성에 가까운 샘플 구성입니다.
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>2.3.0</version>
<configuration>
<extensions>
<extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
</extensions>
</configuration>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>xsdtojava</goal>
</goals>
<configuration>
<sourceRoot>${basedir}/target/generated-sources/src/main/java</sourceRoot>
<xsdOptions>
<xsdOption>
<xsd>src/main/resources/schema/commands.xsd</xsd> <!--shares a common.xsd file causing the conflicts-->
<packagename>com.foo.bar.commands</packagename>
</xsdOption>
<xsdOption>
<xsd>src/main/resources/schema/responses.xsd</xsd>
<packagename>com.foo.bar.responses</packagename>
</xsdOption>
</xsdOptions>
</configuration>
</execution>
</executions>
</plugin>