15

コンパイル中にコードを分析し、必要に応じて失敗させる方法として JSR 269 を使用しています。Maven でアノテーション プロセッサの出力を表示する際に問題があります (Ant は出力を表示します) javax.annotation.processing.Messager を使用して警告とエラーを表示していますが、maven では出力が表示されません。(ただし、実行されることはわかっています。コードを生成する必要があるためです)。何か案は?

4

2 に答える 2

16

Maven のバグ、またはコンパイラ プラグインのバグ ( MCOMPILER-66 )が発生していると思います。注釈処理に関しては、コンパイラ プラグインにはいくつかの問題があります。たとえば、MCOMPILER-62もあります。本当に最良の選択肢は、コンパイラプラグインの注釈処理を無効にして、maven-processor-pluginを使用することです。このブログ投稿では、その使用方法を確認できます。次のようになります。

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

注釈プロセッサの依存関係がプラグインのみに適切にスコープされていることにも注意してください。

于 2012-10-11T11:53:37.113 に答える