2012-10-10 13 views
10

Używam JSR 269 jako sposobu analizowania kodu podczas kompilacji iw razie potrzeby go pomijam. Mam problemy z wyświetlaniem danych wyjściowych mojego procesora adnotacji w programie maven (Ant pokazuje wynik) Używam javax.annotation.processing.Messager do wyświetlania ostrzeżeń i błędów, ale w maven nie widzę jego wyjścia . (Wiem, że to działa, ponieważ generuje kod taki jak powinien). Jakieś pomysły?Dane wyjściowe procesora adnotacji w maven

+0

Jak działają komunikaty wyjściowe procesora? Jak go wywołać? –

+0

Czy dane wyjściowe są wyświetlane, jeśli wywoływana jest funkcja maven z parametrem -X? –

+0

@matt b Używam javax.annotation.processing.Messager do wyświetlania ostrzeżeń: '_messager = processingEnv.getMessager();' @Jorn: Nie używam parametru -X, procesor jest wymieniony jako dostawca usług – iGili

Odpowiedz

12

Myślę, że masz do czynienia z błędem Mavena lub lepiej z błędem wtyczki kompilatora - MCOMPILER-66. Jeśli chodzi o przetwarzanie adnotacji, wtyczka kompilatora ma kilka problemów, np. MCOMPILER-62. Naprawdę najlepszą opcją imo jest wyłączenie przetwarzania adnotacji dla wtyczki kompilatora i użycie maven-processor-plugin. W tym blog post można zobaczyć, jak z niego korzystać. Wygląda to tak:

<plugins> 
    <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <compilerArgument>-proc:none</compilerArgument> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.bsc.maven</groupId> 
     <artifactId>maven-processor-plugin</artifactId> 
     <version>1.3.7</version> 
     <executions> 
      <execution> 
       <id>process</id> 
       <goals> 
        <goal>process</goal> 
       </goals> 
       <phase>process-sources</phase> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-jpamodelgen</artifactId> 
       <version>1.1.0.Final</version> 
       <scope>compile</scope> 
      </dependency> 
     </dependencies> 
    </plugin> 

Należy również sprawdzić, w jaki sposób zależność procesora adnotacji jest ładnie dopasowana do samej wtyczki.

Powiązane problemy