Выход обработчика аннотаций в maven

Я использую JSR 269 в качестве способа анализа кода во время компиляции и при необходимости отказываться. У меня возникают проблемы с отображением вывода моего обработчика аннотаций в maven (Ant показывает результат) Я использую javax.annotation.processing.Messager для отображения предупреждений и ошибок, но в maven я не вижу его вывода. (Я знаю, что он работает, потому что он генерирует код, как он должен). Любые идеи?

Ответ 1

Я думаю, что вы используете ошибку Maven или лучше ошибку в плагине компилятора - MCOMPILER-66. Когда дело доходит до обработки аннотаций, плагин компилятора имеет несколько проблем, например, MCOMPILER-62. На самом деле лучший вариант imo - отключить обработку аннотаций для плагина компилятора и использовать 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>

Обратите внимание также, как зависимость процессора аннотаций хорошо привязана только к плагину.