编译时创建的类在IntelliJ中显示为不存在

时间:2013-09-19 20:33:32

标签: java intellij-idea annotations annotation-processing

动机

我想尝试编译时注释处理适合我的问题。它需要开箱即用,没有编译器参数等。


当前状态

我有:

  • 注释
  • 注释处理器
  • 包含这两者的.jar和包含META-INF / services中处理器的FQCN的javax.annotation.processing.Processor文件

会发生什么:

  • 它应该自动检测处理器
  • 它应该处理注释并创建一个新类(WiredAnnotated)
  • 我应该能够在编译的一个步骤中使用这个类(不是多个阶段)
  • 我不想让编辑接受这个类的生成(例如AndroidAnnotations也管理它)

实际发生的事情:

  • 自动检测处理器
  • 它创建一个新类(在out / production / * / generated /中)
  • 我可以使用这个课程
    • 源代码看起来不错
    • 反编译时看起来也不错
  • 编辑无法解析课程(见截图)

我尝试了什么:

  • 重新启动IntelliJ
  • 使缓存无效
  • 检查注释处理器的输出

屏幕截图:

enter image description here

编译时,它实际上按预期工作。我想这与检查错误的目录有关。

有没有人对我做错了什么有想法/线索?我是否错过了可以帮助您的信息?

提前致谢,直到

1 个答案:

答案 0 :(得分:0)

好吧,您需要将out/production/*/generated/添加到项目源文件夹中。因此,IntelliJ将了解您生成的类。

您可以通过右键单击目录>将目录标记为源根目录。

项目结构(F4)>模块>来源标签>源文件夹应包含包含源代码的所有目录,并生成一个包含。

在android中,根文件夹中有一个gen目录,但请注意,它会发出蓝色或绿色,表示它标记为Source文件夹,它在Project结构中也可见>模块。它包含RBuildConfigManifest