Ove*_*ave 24 java eclipse eclipse-plugin annotation-processing
我编写了一个客户注释处理器来生成包含在Eclipse插件中的各种源文件.作为此过程的一部分,它还使用通常的调用记录各种错误和警告ProcessingEnvironment#getMessager().printMesssage(Kind, String, Element).
我一直在通过调试Eclipse中的插件来测试处理器.在Eclipse的已启动子实例中,处理器都按预期工作 - 源文件由编译器根据需要生成,拾取和解释.生成和未生成的任何编译器(即非自定义)错误都会出现在编辑器,问题视图等中,如预期的那样.
但是,我发现自定义错误和警告的显示方式存在很多不一致之处.我看到的行为如下:
NOTE它始终显示在Info类型下的Error Log中,无论是否指定了Element.ERROR还是WARNING根据上面的重点,真正的问题是第3项 - 在某些情况下,尽管登录了有效元素,我仍然无法在编辑器中出现错误.实际上,我已经成功地通过简单地更改特定生成的源文件的名称来可靠地显示错误而不会出现.
当然问题不在于文件名本身,但肯定的情况是,生成一个名称与代码中已经存在的引用相匹配的类会导致错误被隐藏,同时使用不同的名称生成错误(或根本不生成错误)会导致错误显示(以及由缺少的类引起的所有常规编译器错误).最奇怪的是,与其他任何类(其中有许多类)相比,这个生成的类没有任何根本的不同,尽管它的结构和引用方式都是独一无二的.它也相当长(约400种方法),但人为地缩短它没有任何区别.其他生成的类在代码中也有现有引用,并且不会抑制错误.
不幸的是,我还没有时间测试是否在部署Eclipse插件时(即在Eclipse的"真实"实例中运行)发生此问题,或者实际上如果在javac显式调用或调用Maven构建时出现问题.
如果没有发布插件的完整代码,我不希望任何人能够直接提供帮助,但如果任何人遇到注释处理器生成的错误的经验问题,我对任何建议或建议都非常开放.在我看来,这似乎是Eclipse中的一个错误,但我无法在线找到它的任何引用.我也无法在底层Eclipse实例或Eclipse的已启动子实例的.metadata/.log文件中找到任何错误.最后,我确保在注释处理器代码中没有抑制或报告异常.
Eclipse版本详细信息:
Version: Luna Service Release 1a (4.4.1)
Build id: 20150109-0600
Run Code Online (Sandbox Code Playgroud)
任何帮助表示感谢,并提前多多感谢:)
如果必须在 Eclipse Problems 视图中显示问题/错误,则需要在特定资源(文件/文件夹/项目)上创建标记。请参阅以下链接,了解如何在 Eclipse 插件中创建标记:
https://wiki.eclipse.org/FAQ_How_do_I_create_problem_markers_for_my_compiler%3F https://www.eclipse.org/articles/Article-Mark%20My%20Words/mark-my-words.html
就自定义错误/警告的显示方式而言,问题视图(或通用 MarkersView)完全灵活地显示/隐藏某些元素。查看“问题”视图中的“配置内容...”菜单以获得更多信息。
| 归档时间: |
|
| 查看次数: |
840 次 |
| 最近记录: |