[java] Maven JAXB 플러그인의 차이점


2 Answers

나는 최근에 위에서 언급 한 세 가지 플러그인을 시도했다.

  1. maven-jaxb2-plugin ( http://maven-jaxb2-plugin.java.net/ )
  2. maven-jaxb-plugin ( maven-jaxb-plugin
  3. jaxb2-maven-plugin ( http://mojo.codehaus.org/jaxb2-maven-plugin/ )

나는 네 번째 옵션을 사용하여 끝냈다 : The 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>
Question

Maven 2 용 JAXB 플러그인이 몇 가지 다른 구성으로 존재한다고 판단했습니다.

하나는 Sun에서 가져온 것이고, 다른 하나는 Mojohaus의 http://mojohaus.org/jaxb2-maven-plugin/

다음 두 가지 플러그인 중에서 추천 할 수있는 것은 무엇입니까?

Matt 감사합니다. 내 작은 연구 프로젝트에서, 나는 sunners로부터 오는 꽤 다른 플러그인이 있다는 것을 발견했다.

<groupId>com.sun.tools.xjc.maven2</groupId>  
<artifactId>maven-jaxb-plugin</artifactId>  

그리고 그 하나 :

<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>

그리고 여전히 Codehouse에서 나온 것입니다.




  • maven-jaxb2-plugin은 Oracle / Sun의 JAXB 참조 구현을 사용합니다.
  • cxf 및 jaxb2-maven-plugin 사용 Apache Xerces



하나는 원래 JAXB 스펙을위한 것이고 codehaus은 JAXB 2.1 스펙을위한 것입니다 (그리고 dev.java.net이 금세기를로드한다면, 확실히 말할 수 있습니다).




Related