命令行mvn编译,但不是IntelliJ

时间:2017-06-28 08:02:42

标签: java maven intellij-idea dependencies

我无法在IntelliJ中编译Maven项目。

  • 如果我从命令行= SUCCESS
  • 运行mvn clean install
  • 如果我点击"重新导入所有Maven项目" IntellJ中的图标=成功
  • 如果我点击"为所有项目生成源和更新文件夹" IntelliJ = SUCCESS中的图标
  • 如果我点击"安装" Maven Projects面板中的生命周期= SUCCESS
  • Maven"安装"我甚至可以毫无问题地运行应用程序,我可以看到我最新的源代码更改。

因此,我不相信项目本身有任何问题。但

  • IntelliJ显示缺少许多方法和字段(红色高光)
  • Make Module ...失败
  • 编译模块...失败
  • 从IntelliJ运行的所有单元测试都失败了" java:找不到符号"错误,但从命令行PASS

我有

  • 多次重启IDE
  • 点击文件 - >无效缓存/重新启动...
  • 点击文件 - >项目结构...... - >问题=空面板(我认为这意味着没有问题)
  • 点击文件 - >设置... - > Maven = Maven设置正确

我还能尝试使IntelliJ足够智能化以编译项目吗?

7 个答案:

答案 0 :(得分:2)

如果命令行使用不同版本的mvn而不是IntelliJ,则会发生这种情况。 确保Intellij使用命令行正在使用的相同maven可执行文件。第一种类型:"其中mvn" 找出命令行正在使用的mvn可执行文件。然后通过转到:Intellij =>使IntelliJ使用相同的版本。首选项=>构建,执行和部署=>构建工具=> Maven => Maven主目录。 Mvn Settings in IntelliJ 2017.1

答案 1 :(得分:0)

当我生成源代码时,我遇到了这个问题。 Maven没有设置为将compiled-test-sources文件夹标记为测试源root,因此每次我使用Maven做某事时我都必须标记生成的文件夹。

答案 2 :(得分:0)

检查项目的JDK设置。根据我的经验,这是令人头晕目眩的Intellij无法编译问题的最常见原因。

在“项目设置”(CMD-,)下 - 参见“Project SDK”设置。

确保它是有效的SDK,并且版本与源所需的版本匹配(即检查maven编译器插件源/目标设置,并确保所选SDK至少是该版本或更高版本)。

答案 3 :(得分:0)

只是遇到了这个问题。对我有用的是关闭项目并删除.idea文件夹。

重新打开项目,然后再次将其设置为maven项目...

那以后一切都很好。

答案 4 :(得分:0)

几年后,我又遇到了同一个问题,但又遇到了另一个项目。在这种情况下,IntelliJ缺少生成丢失源的Lombok插件。

要安装:

  1. 转到:文件->设置->插件
  2. 在搜索栏中输入“龙目岛”
  3. 点击龙目岛旁边的“安装”
  4. 重新启动IntelliJ

答案 5 :(得分:0)

我从IntelliJ Maven编译到Java 11时遇到了类似的问题,指示com.sun.management.HotSpotDiagnosticMXBean#dumpHeap()不存在。

尝试上述步骤后,我仍然无法解决。我最近迁移到Ubuntu的新实例,并决定启动我的旧VM,该处的代码编译没有问题。因此,我想到在新VM上安装IntelliJ时,我选择通过IntelliJ SDK下载功能下载AdoptOpenJDK 11( adopt-openj9-11.0.7 )。

因此,我手动下载并安装了OpenJDK 11的新副本( jdk-11.0.6 + 10 ),然后将项目的默认SDK更改为我安装的新SDK,一切编译正常

我希望这个答案可以对其他人有所帮助。

答案 6 :(得分:0)

一直面临这个问题,通常的根本原因是如上所述在 IntelliJ 上运行的 Maven 版本不同,但有时也可能是由于项目结构中选择的 Java 版本不同。

>

对我来说,即使在对齐 maven 版本之后,问题也不会消失,但是一旦我检查了 Java 版本,Intellij 默认为我选择了 Java 11,一旦我将其改回 Java 8,它又开始工作了.