我有两个Maven项目:
我使用mvn clean && mvn compile
调用第二个项目的构建(在构建并安装第一个项目之后),以确保编译将发生并且注释处理将运行。它按预期工作:简单的annontation处理器只在target/classes/
目录中生成一个包含一些虚拟数据的资源文件。
当我尝试使用processingEnv.getMessager().printMessage(...)
输出一些信息时,我开始遇到麻烦。如果我使用Diagnostic.Kind.ERROR
,则构建停止并打印消息,正如我所料。但是,与任何其他Kind
(例如NOTE
或WARNING
),消息不会写在屏幕上!
有关我的环境的一些信息:
Kubuntu 12.10
Linux 3.5.0-17-generic
Apache Maven 3.0.4 (r1232337; 2012-01-17 06:44:56-0200)
Java version: 1.7.0_09, vendor: Oracle Corporation
我没有在任何地方明确声明maven-compiler-plugin
的版本,所以必须使用默认版本(2.3.2?我不确定)。
如何在此设置中启用所有Kind
消息的输出? (即通过maven启动annontation处理器)
答案 0 :(得分:5)
显然,这是maven-compiler-plugin中的一个尚未修复的错误:MCOMPILER-66 - Compiler swallows messages from annotation processors。
答案 1 :(得分:5)
尝试添加以下行:
<configuration>
<showWarnings>true</showWarnings>
</configuration>
进入项目pom.xml中的maven compiler-plugin定义。这个解决方案适合我。