2012-10-10 13 views
10

私は、コンパイル時にコードを分析し、必要に応じて失敗する方法としてJSR 269を使用しています。 mavenの注釈プロセッサの出力を表示するのに問題があります(Antは出力を表示します) 警告とエラーを表示するのにjavax.annotation.processing.Messagerを使用していますが、出力されていません。 (私はそれが必要なようなコードを生成するので、私はそれが実行されていることを知っている)。 アイデア注釈プロセッサーの出力

+0

プロセッサからメッセージがどのように出力されますか?どのように呼び出すのですか? –

+0

'-X'パラメータを指定してmavenを起動すると出力が表示されますか? –

+0

@matt b警告を表示するためにjavax.annotation.processing.Messagerを使用しています: '_messager = processingEnv.getMessager();' @Jorn:私は-Xパラメータを使用しません。プロセッサはサービスプロバイダとしてリストされています – iGili

答えて

12

私はあなたがMavenバグか、より良いバグをコンパイラプラグイン - MCOMPILER-66で実行していると思います。注釈処理に関して、コンパイラプラグインにはいくつかの問題があります。例えば、MCOMPILER-62もあります。本当に最適なオプションは、コンパイラプラグインの注釈処理を無効にしてmaven-processor-pluginを使用することです。このblog postでは、その使い方を見ることができます。

<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> 

アノテーションプロセッサの依存関係がどのようにプラグインに限定されているかにも注意してください。