Podsumujmy. Mamy:
- Maven-jaxb2-plugin ( https://github.com/highsource/maven-jaxb2-plugin )
- Maven-JAXB-plugin ( https://jaxb.dev.java.net/jaxb-maven2-plugin/ )
- -plugin jaxb2-Maven ( https://github.com/mojohaus/jaxb2-maven-plugin )
Opierając się na komentarzach tego wątku , zawsze używałem wtyczki maven-jaxb2-plugin (tj. Wtyczki nr 1):
Jeśli chodzi o wtyczkę org.jvnet.jaxb2.maven2: maven-jaxb2-plugin versus com.sun.tools.xjc.maven2: maven-jaxb-plugin, z mojego punktu widzenia jest to zdecydowanie pierwsza ( http: // maven-jaxb2 -plugin.java.net/ ).
Ta wtyczka ma znacznie więcej funkcji niż com.sun.tools.xjc.maven2: maven-jaxb-plugin, rozwój jest aktywny. Wreszcie jestem jednym z autorów :) i powiedziałbym, że utrzymujemy kontakt z programistami i użytkownikami JAXB oraz reagujemy na najnowsze funkcje / prośby.
I rzeczywiście, wtyczka nr 2 nie jest bardzo aktywna (martwa?). A ponieważ zawsze byłem zadowolony z # 1, nigdy nie korzystałem z wtyczki # 3, więc tak naprawdę nie mogę nic o tym powiedzieć. Na wszelki wypadek, oto działająca konfiguracja dla wtyczki nr 1:
<project>
...
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
maven-jaxb2-plugin
jest teraz hostowany na GitHub . Dokumentacja znajduje się na wiki .Niedawno wypróbowałem trzy wymienione powyżej wtyczki (również tutaj):
Skończyło się na użyciu czwartej opcji: wtyczki CXF XJC Maven http://cxf.apache.org/cxf-xjc-plugin.html
Jeśli brakuje mi czegoś, co chciałbym wiedzieć, ale konfiguracja wydawała się prostsza dla tego, co próbowałem zrobić, i łatwiej pozwalała mi radzić sobie ze zduplikowanym generowaniem klas w tej samej przestrzeni nazw - podobnie do pytania: czy istnieje sposób radzenia sobie ze zduplikowanymi definicjami elementów w wielu plikach .xsd w JAXB? .
Mam teraz szczegółową kontrolę nad każdym przychodzącym XSD i odpowiadającym mu pakietem Java; oto przykładowa konfiguracja zbliżona do tej, której używam.
źródło
Jestem autorem wtyczki maven-jaxb2-plugin .
Wtyczka maven-jaxb2-plugin używa obecnie JAXB 2.1. W kolejnych wersjach udostępnimy również wersje JAXB 2.0 i JAXB 2.2.
Jeśli chodzi o dyskusję „która wtyczka jest lepsza”, sprawdź funkcje , zdecyduj sam. Daj mi znać, jeśli przegapisz jakąś funkcjonalność.
źródło
źródło
Z drobną uwagą: wystąpił problem z użyciem wtyczki maven-jaxb2-plugin do Eclipse Indigo, które zamieściłem tutaj . Niedawno udostępniono poprawkę (rozszerzenie).
Nie oznacza to, że w ogóle nie zgadzam się z zaleceniem maven-jaxb2-plugin zamiast maven2-jaxb-plugin. Nie wiem, ale spodziewam się, że maven2-jaxb-plugin ma ten sam problem, prawdopodobnie nierozwiązany.
źródło
Wydaje mi się, że jeden jest przeznaczony dla oryginalnej specyfikacji JAXB, a kodhaus dla specyfikacji JAXB 2.1 (i jeśli dev.java.net załadowałby się kiedyś w tym stuleciu, mogę to z całą pewnością stwierdzić).
źródło