Java 注释处理器生成的错误/警告未显示在Eclipse编辑器或问题视图中
我已经编写了一个客户注释处理器来生成各种源文件,包装在Eclipse插件中。作为此过程的一部分,它还使用通常的调用Java 注释处理器生成的错误/警告未显示在Eclipse编辑器或问题视图中,java,eclipse,eclipse-plugin,annotation-processing,Java,Eclipse,Eclipse Plugin,Annotation Processing,我已经编写了一个客户注释处理器来生成各种源文件,包装在Eclipse插件中。作为此过程的一部分,它还使用通常的调用ProcessingEnvironment#getMessager().printmessage(种类、字符串、元素)记录各种错误和警告 我一直在通过在Eclipse中调试插件来测试处理器。在Eclipse的已启动子实例中,处理器的所有工作都按预期进行—编译器会根据需要生成、拾取和解释源文件。生成的和未生成的文件中的任何编译器(即非自定义)错误将按预期显示在编辑器、问题视图等中 然而
ProcessingEnvironment#getMessager().printmessage(种类、字符串、元素)
记录各种错误和警告
我一直在通过在Eclipse中调试插件来测试处理器。在Eclipse的已启动子实例中,处理器的所有工作都按预期进行—编译器会根据需要生成、拾取和解释源文件。生成的和未生成的文件中的任何编译器(即非自定义)错误将按预期显示在编辑器、问题视图等中
然而,我发现在自定义错误和警告的显示方式方面存在很多不一致之处。我看到的行为如下:
注意
,则无论是否指定了元素,它总是出现在错误日志的“类型信息”下错误
还是警告
javac
或调用Maven构建时发生的
没有发布插件的完整代码,我不希望任何人能够直接提供帮助,但如果任何人遇到注释处理器生成的错误问题,我非常乐意接受任何建议。在我看来,这就像Eclipse中的一个bug,但我一直无法在网上找到任何关于它的参考。在基础Eclipse实例或已启动的Eclipse子实例的.metadata/.log文件中,我也找不到任何错误。最后,我确保注释处理器代码中没有抑制或报告的异常
Eclipse版本详细信息:
Version: Luna Service Release 1a (4.4.1)
Build id: 20150109-0600
非常感谢您的帮助:)如果必须在Eclipse Problems视图中显示问题/错误,您需要在特定资源(文件/文件夹/项目)上创建一个标记。关于如何在Eclipse插件中创建标记,请参见以下链接:
就自定义错误/警告的显示方式而言,Problems视图(或通用MarkersView)完全可以灵活地显示/隐藏某些元素。查看问题视图中的“配置内容…”菜单,了解更多信息。我注意到Eclipse有自己的类加载器(以及字节码修改实用程序),这些类加载器有时会出现意外行为,主要是为了改善IDE中的用户体验。您可能已经想到了这一点,但是在代码的各个部分添加
new Throwable(“debug message”).printStackTrace()
作为调试语句通常是在我无法理解其他任何内容时开始的。