如何在 IntelliJ IDEA 14 中为当前项目工作配置注释处理?

Posted

技术标签:

【中文标题】如何在 IntelliJ IDEA 14 中为当前项目工作配置注释处理?【英文标题】:How to configure annotations processing in IntelliJ IDEA 14 for current project work? 【发布时间】:2015-01-29 04:39:45 【问题描述】:

项目的结构是:

父项目 A 项目(Spring)在 pom.xml 中有项目 B 的依赖 B 项目(Spring MVC)在 pom.xml 中有项目 A 的依赖

在Tomcat 7中启动项目B后,出现错误:

错误:java:模块周期不支持注释处理。 请确保从循环 [A,B] 中排除所有模块 注释处理

如何避免这个问题?

我使用 Java 8、Tomcat 7 和 Intellij Idea 14。

【问题讨论】:

对我来说,IntelliJ IDEA 似乎并不了解测试范围,认为它是一个循环依赖。示例:B->A 和 A[test]->B,当然还有 A[test]->A。这里没有循环依赖。 打开了一个缺陷 - youtrack.jetbrains.com/issue/IDEA-159568. 一年零三个月后,缺陷仍然存在。测试是 IDEA 中的二等公民吗? 【参考方案1】:

如果循环依赖是错误的,那么打开模块设置并将它从不应该有它的模块中删除。

如果依赖正确,则取消选中File | Settings | Build, Execution, Deployment | Compiler | Annotation Processors 中的Enable annotation processing

【讨论】:

【参考方案2】:

要解决这类问题需要使用 InteliJ-idea 中的分析模块依赖项。

文件菜单 > 分析 > 模块依赖

这显示了所有具有循环依赖关系并应首先解决的项目的列表。

此功能可帮助您找到问题。

EDIT – 对于最新版本,Analyze -> Analyze Module Dependencies..

【讨论】:

仅供参考,在最近的 InteliJ IDEA 版本(例如 2017.x)中尝试:Analyze > Analyze Module Dependencies.., 这是分析依赖关系的正确方法。 @codepleb 下面的回答对于解决这个问题很有用。谢谢你们! 对我来说是文件菜单 > 分析 > 分析循环依赖 有人能解释一下这个错误是什么意思吗?或者修复它的逻辑是什么? @PhilipRego 我同意。我要求删除我的旧答案,因为它并没有真正有助于正确的解决方案。据我了解,IntelliJ 不直接依赖 pom.xml,而是在 .idea/libraries 目录中构建了一个结构,该结构确实是从 POM 文件生成的(并在重新导入/刷新中丢失)。您可以通过模块设置修改这些,但它不会反映 POM 内容,因此仅出于 IDE 目的进行修补以使东西正常工作,但更正实际源代码或 Maven 项目结构中的设计/依赖性缺陷.请参阅下面的“选择并删除它”评论。【参考方案3】:

进入 Settings->Build->Compiler->Annotation Processors 并禁用它解决了它。

允许 Test-A 依赖于 B,即使 B 依赖于 A

我正在使用 IntelliJ2019.1

但很遗憾它似乎没有考虑 maven 测试范围

【讨论】:

【参考方案4】:

解决这个问题的替代方法对我有用(上述答案没有)。

从您拥有的包/项目中转到pom.xml删除导致问题的标签。 您可以在控制台中找到问题的依赖关系。

希望对您有所帮助。 :)

【讨论】:

【参考方案5】:

除了 Mikhails 的回答,这里是如何解决它

当您看到哪些模块具有循环依赖关系时,右键单击您的项目并

Open Module Settings -> 展开相应的模块组并选择模块 -> Dependencies -> 选择并删除它

【讨论】:

实际上并没有从 pom.xml 中删除它。

以上是关于如何在 IntelliJ IDEA 14 中为当前项目工作配置注释处理?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IntelliJ IDEA 中为 Spring Boot 项目构建 jar 工件

如何在 IntelliJ IDEA Grails 项目中为 groovy 方法获取 javadocs / groovydocs?

在intellij IDEA中为web应用创建图片虚拟目录(详细截图)

如何在intelliJ IDEA中为我现有的Kotlin项目生成build.gradle文件

如何提高intellij idea 14响应速度

在 IntelliJ IDEA 中为现有项目添加 GIT 支持