我在 IntelliJ 中编译 Maven 项目时遇到问题。
mvn clean install
=成功因此我不认为这个项目本身有什么问题。但是
我有
我还能尝试什么让 IntelliJ 足够智能来编译项目?
如果命令行使用与 IntelliJ 不同版本的 mvn,则可能会发生这种情况。 确保 Intellij 使用与命令行使用的相同的 Maven 可执行文件。第一种类型:“which mvn” 找出命令行正在使用的 mvn 可执行文件。然后通过以下方式让 IntelliJ 使用相同的版本:Intellij => Preferences => Build, Execution and Deployment => Build Tools => Maven => Maven Home Directory。 IntelliJ 2017.1 中的 Mvn 设置
刚刚遇到这个问题。对我有用的是关闭项目并删除 .idea 文件夹。
重新打开项目,然后再次将其设置为maven项目...
之后一切都好。
检查项目的 JDK 设置。 根据我的经验,这是奇怪的 Intellij 无法编译问题的最常见原因。
在“项目设置”(CMD-,) 下 - 查看“项目 SDK”设置。
确保它是有效的 SDK,并且版本与源所需的版本匹配(即检查 Maven 编译器插件源/目标设置,并确保所选的 SDK 至少是该版本或更高版本)。
几年后,我在另一个项目中再次遇到同样的问题。 在这种情况下,IntelliJ 缺少生成丢失源的 Lombok 插件。
安装:
我在生成源代码时遇到了这个问题。 Maven 没有设置将已编译的测试源文件夹标记为测试源根目录,因此每次我使用 Maven 执行某些操作时,我都必须标记生成的文件夹。
我在从 IntelliJ Maven 编译到 Java 11 时遇到了类似的问题,表明
com.sun.management.HotSpotDiagnosticMXBean#dumpHeap()
不存在。
尝试了上述步骤后,我仍然无法解决问题。我最近迁移到了 Ubuntu 的新实例,并决定启动我的旧虚拟机,其中代码编译没有问题。所以我想到,当我在新虚拟机上安装 IntelliJ 时,我选择通过 IntelliJ SDK 下载功能下载 AdoptOpenJDK 11 (adopt-openj9-11.0.7)。
所以我手动下载并安装了一份新的 OpenJDK 11 (jdk-11.0.6+10),然后将项目的默认 SDK 更改为我安装的新版本,一切都编译得很好。
我希望这个答案可以帮助其他人。
这个问题已经困扰很长时间了,通常其根本原因是如上所述在IntelliJ上运行的maven版本不同,但有时也可能是由于项目结构中选择的Java版本不同引起的。
对我来说,即使在对齐maven版本后,问题也不会消失,但是一旦我检查了java版本,Intellij默认为我选择了Java 11,一旦我将其改回Java 8,它又开始工作了。
围绕这个看起来非常明显的问题,我遇到了很多问题。
总而言之,问题是 pom.xml 定义
<java.version>21</java.version>
我使用的是 IntelliJ Idea 2021 版本。
在此版本的 IntelliJ 上,问题已通过在设置 -> 构建、执行、开发 -> Maven -> Maven Home Path -> Bundled Maven 3 中使用
Bundled Maven 3
解决了
但是后来我遇到了与 Java 21 使用相关的其他问题,例如
release version 21 not supported
和 java: No enum constant javax.lang.model.element.Modifier.SEALED