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