当前位置:  开发笔记 > 编程语言 > 正文

获取IntelliJ以识别AnnotationProcessor生成的类

如何解决《获取IntelliJ以识别AnnotationProcessor生成的类》经验,为你挑选了1个好方法。

我正在使用java注释处理器在编译时生成其他类.使用gradle构建时它工作正常,但我无法让IntelliJ识别生成的类.每当我尝试在IntelliJ中构建项目时,它会错误地说它找不到引用生成的类的符号.同样,因为它不知道类,所以在编写使用类的代码时没有给我任何帮助,只是将它全部突出显示为错误.

我有两个兄弟模块:"处理器"模块实现注释处理器并定义注释."demo"模块只是一些JUnit测试来试用注释处理器.我可以在IntelliJ中构建"处理器"模块,但是"演示"模块给出了如上所述的错误.我有"处理器"作为"演示"模块的依赖,在"测试"范围(我也尝试过"编译"范围).

如何让IntelliJ自动识别类?

更新

我已经能够通过在设置对话框"标注处理程序"下创建新的配置,该配置文件下移动"演示"模块,可实现批注处理该配置文件,并指定注解处理器的FQCN得到它建在"注释处理器"列表框下.

但是,实时代码帮助仍然无效,编辑只是告诉我它找不到类,这实际上更重要(因为我总是可以从gradle构建).



1> Douglas..:

在IntelliJ中,找到生成的代码所在的文件夹.这由设置注释处理的同一对话框中的设置控制.右键单击该文件夹,在上下文菜单中找到"Mark Directory As",然后选择"Generated Sources Root".

执行此操作后,IntelliJ将正常识别并处理生成的类.它还会给出一个编译警告,表明输出路径与源根相交,但这是合理可忽略的.我还没有找到一种方法来摆脱那个警告而不会让生成的类无法识别.


@lingz我猜你生成的代码文件夹实际上是排除标记所在的子文件夹.您可以更改生成的代码通过注释处理设置的位置,也可以取消标记父文件夹(然后您将要排除除生成的代码之外的每个子文件夹).
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有