繁体   English   中英

获取 IntelliJ 以识别 AnnotationProcessor 生成的类

[英]Get IntelliJ to recognize classes generated by AnnotationProcessor

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

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

如何让 IntelliJ 自动识别类?

更新

我已经能够通过在设置对话框中的“注释处理器”下创建一个新的配置文件来构建它,移动该配置文件下的“演示”模块,启用该配置文件的注释处理,并指定注释处理器的 FQCN在“注释处理器”列表框下。

但是,实时代码帮助仍然不起作用,编辑器只是告诉我它找不到类,这确实更重要(因为我总是可以从 gradle 构建)。

在 IntelliJ 中,找到生成代码所在的文件夹。这由设置注释处理的同一对话框中的设置控制。 右键单击该文件夹,在上下文菜单中找到“将目录标记为”,然后选择“生成的源根目录”。

这样做之后,IntelliJ 将正常识别和处理生成的类。 它还会发出编译警告,指出输出路径与源根目录​​相交,但这是可以忽略的。 我一直无法找到一种方法来消除该警告而不会使生成的类无法识别。

您可以继续使用 pom/gradle 文件并重新加载它,它会起作用。 例子 :

pom.xml(右键单击)-> Maven-> 重新加载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM