2011-12-13 14 views
7

Kiedy próbuję użyć maven-jaxb-schemagen-plugin z Java 7Czy można uzyskać wtyczkę maven-jaxb-schemagen współpracującą z Javą 7?

<groupId>com.sun.tools.jxc.maven2</groupId> 
<artifactId>maven-jaxb-schemagen-plugin</artifactId> 
<version>1.2</version> 

pojawia się błąd:

[ERROR] Failed to execute goal com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.2:generate (default) on project TopologyProvisionerDom: Execution default of goal com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.2:generate failed: A required class was missing while executing com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.2:generate: com/sun/mirror/apt/AnnotationProcessorFactory 

Wydaje się, że AnnotationProcessorFactory jest usuwany/nieaktualnych w Javie 7? Czy można uzyskać schemagen jaxb do pracy przy użyciu tej wtyczki? Czy istnieje alternatywne podejście do generowania schematu z kodu źródłowego JAXB podczas korzystania z JDK 7?

Odpowiedz

9

Czy próbowałeś już korzystać z org.codehaus.mojo:jaxb2-maven-plugin?

+2

Ta wtyczka wydaje się działać. Jedną wadą jest to, że nie wydaje się możliwe nazwanie wyjściowych plików schematu za pomocą tej wtyczki, więc musiałem uciekać się do używania wtyczki maven-antrun, aby zmienić nazwę pliku schematu. Otrzymuję również ostrzeżenie "Ostrzeżenie: Narzędzie apt i związane z nim API zostaną usunięte w następnej wersji JDK." - mam nadzieję, że ten bałagan zostanie rozwiązany przed java 8 – lexicalscope

+1

Możesz dostarczyć pliki schematów wyjściowych używając i keiki

7

Jak to działa (dodać profil do listy pom.xml):

<profile> 
    <id>jdk7-fix</id> 
    <activation> 
     <file><exists>${java.home}/../lib/tools.jar</exists></file> 
    </activation> 
    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>com.sun.tools.jxc.maven2</groupId> 
        <artifactId>maven-jaxb-schemagen-plugin</artifactId> 
        <dependencies> 
         <dependency> 
          <groupId>com.sun</groupId> 
          <artifactId>tools</artifactId> 
          <version>1.7</version> 
          <scope>system</scope> 
          <systemPath>${java.home}/../lib/tools.jar</systemPath> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</profile> 
+0

to wygląda na obejście problemu, czy masz opis rozwiązania? Dzięki –

0

Nie wiesz, kto słucha tego wątku już, ale co hej ...

użyłem transformSchemas opcja np

<transformSchemas> 
    <transformSchema> 
     <uri>YOUR NS IN YOUR GENERATED SCHEMA FILE</uri> 
     <toFile>DESIRED NAME OF YOUR XSD FILE</toFile> 
    </transformSchema> 
</transformSchemas> 

okrzyki

-m.

Powiązane problemy