命令行 mvn compile,但不是 IntelliJ

Jas*_*iti 8 java dependencies intellij-idea maven

我在 IntelliJ 中编译 Maven 项目时遇到问题。

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

因此,我认为项目本身没有任何问题。但

  • IntelliJ 显示缺少许多方法和字段(红色突出显示)
  • 制作模块...失败
  • 编译模块...失败
  • 从 IntelliJ 运行的所有单元测试都失败并显示“java:找不到符号”错误,但从命令行通过

我有

  • 多次重启IDE
  • 单击文件 -> 使缓存无效/重新启动...
  • 单击 File -> Project Structure... -> Problems = Empty 面板(我认为这意味着没有问题)
  • 单击文件 -> 设置... -> Maven = Maven 设置正确

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

小智 6

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

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

之后一切都好。


小智 5

如果命令行使用不同于 IntelliJ 的 mvn 版本,就会发生这种情况。确保 Intellij 使用与命令行使用的相同的 Maven 可执行文件。第一种类型:“which mvn”以找出命令行正在使用的 mvn 可执行文件。然后让 IntelliJ 使用相同的版本:Intellij => Preferences => Build, Execution and Deployment => Build Tools => Maven => Maven Home Directory。 IntelliJ 2017.1 中的 Mvn 设置


小智 0

当我生成源时,我遇到了这个问题。Maven 没有设置将已编译的测试源文件夹标记为测试源根目录,因此每次我使用 Maven 执行某些操作时,我都必须标记生成的文件夹。