Maven包工作但Intellij的构建失败

Yar*_*ran 77 java intellij-idea maven

我有一个JDK 1.7项目,maven依赖于我的maven repo中的本地jar.

我无法使用Intellij构建项目,错误是找不到符号(符号是从本地jar导入包的类)

但我可以使用'mvn package'成功构建项目.

我花了很多时间寻找解决方案,我已经做过的事情:

  • 缓存无效
  • 'mvn clean install'本地jar依赖
  • 在Intellij的maven配置中标记为"自动加载快照"
  • 在Intellij重新插入maven
  • Syncornized

这个错误发生在我之前的几次,但通常只是关闭Intellij和/或做'mvn clean install'就行了.

请帮忙.

Rah*_*Jha 109

我知道这已经晚了但是执行mvn idea:idea解决了这个问题.

  • `mvn idea:idea`没有保持最新,并且不是由jetbrains维护的 (4认同)
  • 在那之后我不得不重新运行 mvn install (4认同)
  • 你把我从绝望中救了出来。我想吻你 (4认同)
  • 这么多年过去了,为什么intellij 不能独自完成这件事呢?每次导入新项目时我仍然需要运行此命令!SMH (4认同)
  • 我知道我迟到了,但你能告诉我 `mvn idea:idea` 是做什么的吗? (3认同)
  • 这应该是公认的答案,因为它提供了一个实际的解决方案,而不仅仅是它失败的原因.我所有的更新! (2认同)
  • 我不敢相信我花了这么多时间试图解决这个问题。这个法术刚刚奏效!谢谢你。 (2认同)
  • 哇 !2020 年仍然有效...说实话,在从事多年的软件工程之后,我第一次经历这种情况,但很高兴知道!在过去的 35 分钟里,我为这个问题而疯狂。 (2认同)
  • 即使到了 2021 年,这也是唯一有效的方法。难怪人们使用 npm。 (2认同)
  • 我在 intellij 2021.1.3 上,这仍然像魔术一样有效 (2认同)
  • 2022 年仍然有效。我使用的是 IntelliJ IDEA 2021.3.3(终极版)谢谢! (2认同)

mas*_*odg 24

尝试删除所有.iml和您的POM.然后将POM再次复制并粘贴到项目中,然后重新打开并重新导入它.

  • 也许只是在删除任何东西之前尝试在Maven Project视图中"重新导入所有" (11认同)
  • 我也不得不删除.iml,重新导入Maven并没有解决它。 (2认同)
  • @masoodg,非常感谢!你救了我的一天!只是重新导入没有帮助。按照你的指示去做,它就像一个魅力。 (2认同)

小智 15

添加更多提示,因为这是我遇到类似问题时出现的第一件事(项目构建在mvn中,而不是在IntelliJ中),以防它可能帮助其他人.

当我有这个时,它在Windows和Mac上是一个不同的修复程序.

在Mac上,我进入了ItellijIDEA/Preferences/Build,Execution,Deployment/Build Tools/Maven/Maven Home Directory并将其设置为使用我单独安装的Maven而不是捆绑的Maven.所有构建问题都消失了.

在Windows上,我看到了与SSL相关的idea.log中的异常,我的项目树在External Libraries分支下只有Java.通过查看其他站点,听起来IntelliJ使用自己的私有JDK而不是系统JDK(即使在我的情况下,我已经安装了完全相同的JDK版本).我的系统JDK在IntelliJ专用JDK没有的企业Nexus服务器的密钥库中安装了证书,因此在尝试从Nexus获取文件时会抛出异常.为此,解决方案是退出IntelliJ,设置一个名为IDEA_JDK的环境变量,指向已经安装了具有正确证书的JDK并重新启动IntelliJ.所有构建问题都消失了.


Yar*_*ran 12

我发现我的.iml文件和pom是冲突的并导致问题.

  • 关于如何解决这个问题的任何提示?我只想让Intellij工作,似乎Netbeans无论如何运行任何项目......这是一个完整的生产力驱逐舰:( ... (9认同)
  • “如何”比“为什么”更有用。请添加一些有关您如何解决此问题的详细信息。 (2认同)
  • 我关闭了IntelliJ.然后,我删除了`C:\ Users\USERNAME\.IntelliJIdea2017.2\system`.之后,我在源目录中执行了`git clean -xdf`以删除所有非版本化文件,并再次导入项目.现在就像一个魅力. (2认同)

Raj*_*Raj 10

IDE 在进行构建时使用它自己的 Maven 捆绑副本。如果终端上的 maven 与 IDE 不同,那么您希望它们相同。

转到(在 Mac 上)- IntelliJ Idea -> 首选项 -> 构建、执行、部署 -> 构建工具 -> Maven。设置您的Maven 主目录 的路径 要从终端中找到您使用的 Maven 的路径,请键入命令mvn -version,它应该会打印出包括目录路径在内的一系列详细信息。把它放在Maven Home Directory 中

为了安全起见,您也可以对 JDK 位置执行相同操作

==== 其他一些可能导致此类问题的事情 ===

如果执行 mvn package 或 mvn clean install 构建,那么它必须对 IDE 缓存做一些事情。除其他外,这通常有助于解决此类错误-->

文件 -> 无效缓存


Ram*_*ram 7

Maven ReImport为我工作如下:

在此处输入图片说明

  • IntelliJ IDEA Ultimate 2020.3 有“重新加载项目”并且有效。 (2认同)

sgX*_*sgX 6

我遇到了类似的问题,以下选项不起作用。

  1. invalidating cache and restart通过文件菜单
  2. mvn idea:idea

是什么解决了这个问题:

  1. 完全关闭IntelliJ
  2. 从终端,git clean -xdf在存储库上执行。这将删除所有生成的类和 idea/iml/ipr 文件。其他VCS应该有类似的宏。
  3. 跑步mvn clean package
  4. 打开 IntelliJidea .

这里的关键是关闭 intellij,并从终端执行这些步骤。如果从 IntelliJ 内部尝试,IntelliJ 仍在某个地方缓存旧文件。这是版本IntelliJ IDEA 2021.3.2(终极版)


小智 5

我知道我对这次谈话已经很晚了,但只是想发布这个以防其他人遇到这个问题。发生这种情况的另一个原因是您没有引用正确的存储库。默认情况下,Intellij 会选择 jar 的捆绑版本,而不是您自己的 maven 存储库中的那个。确认连接的存储库是正确的。