为什么IntelliJ会出现“包不存在”的错误提示?

262

我正在尝试使用烧烤条形码打印库。我已通过项目结构添加库成功将库添加到IntelliJ中。然后我导入了包并编写了方法,没有出现错误。这些包在类中可用。

但是当我编译时,它给了我一个错误:

error: package net.sourceforge.barbecue does not exist

这怎么可能?

我正在ubuntu上编码,我需要在其他地方添加库吗?


2
你确定这个JAR包在你的项目结构的库部分吗? - Makoto
1
验证库的作用域(在项目结构窗口中)是否为“编译”。如果设置为“提供”,它将导致您所描述的行为。 - Javaru
如果您在Maven配置文件中有一个依赖项,请确保在编译项目时在Maven树“Profiles”中选择正确的配置文件。 - Jose Rui Santos
如果您正在使用Gradle进行项目开发,请查看以下回答:https://dev59.com/G3NA5IYBdhLWcg3wNa-T#48930705 - Valentin
这个解决方案对我有效。请按照给定的链接进行操作。 - Zia Ul Mustafa
40个回答

234

仅重新导入没有起作用。以下方法对我有用:

文件->无效缓存/重启

然后

构建->重新构建项目

这将重新导入maven项目。

注意:您需要使缓存失效并且还要重新构建项目。


15
运作得很好,但你能解释一下为什么会发生这种情况吗? - Raj Rajeshwar Singh Rathore
8
注意,如果有其他人查看这个答案 -> 请注意,您需要使缓存失效并重新构建项目。我根据直觉只执行了第一步,因为我在重新启动后看到了IntelliJ IDEA的“重建”和索引,但我认为这不足够。您需要明确地重新构建整个项目。 - The-Big-K
5
@maven或gradle会缓存先前构建的部分,以便在下次构建项目时更快地构建。因此,当您第一次遇到错误时,maven会记住这个模块缺失的信息。@Raj Rajeshwar Singh Rathore - Boommeister
2
哇,它在2022年仍然很有用! - Splash
非常感谢,我被这个问题困扰了一个多小时。 - umunBeing
显示剩余2条评论

122

我尝试了 "Maven > 重新导入",但唯一真正解决问题的方法是关闭项目,删除 .idea 目录,然后重新打开项目。


10
这有所帮助,但问题过一段时间后又会出现。 - hipokito
2
重新导入:按Ctrl+Shift+A查找操作,输入“reimport”,您将找到“重新导入所有Maven项目”。 - boardtc
终于成功了!全世界所有的重新导入都没有解决问题。甚至包括“清除缓存并重新启动”,但这个方法却奏效了…… - rogerdpack
1
我认为现在应该是“重新加载所有Maven项目”。当无法通过使缓存失效和重新构建来解决问题时,这也适用于我。 - Michele Palmia
如果您有Maven配置文件,请确保在需要时启用正确的配置文件。启用/禁用配置文件后,请重新加载所有Maven项目。 - Ababneh A
显示剩余3条评论

68

我尝试了13种方法都没能解决问题,但是我通过先删除所有模块来解决了这个问题:

  1. 打开 File > Project Structure...
  2. 进入 Modules 选项卡,
  3. 选择所有模块并点击“删除”按钮,

然后从 Maven 工具窗口中删除所有剩余的 Maven 模块:

  1. 选择所有模块,
  2. 右键单击它们,
  3. 点击“Remove projects”(移除项目),

接下来在 Project 工具窗口中重新添加它们:

  1. 右键单击根目录下的 pom.xml
  2. 点击“Add as Maven project”(添加为 Maven 项目),

现在从 Maven 工具窗口中取消忽略任何被忽略的模块:

  1. 选择所有被忽略(灰色)的 Maven 模块,
  2. 右键单击它们,
  3. 点击“Unignore”(取消忽略),

最后使用 Build > Rebuild project 进行重新构建。这假定已经执行了 mvn clean install


5
在 IntelliJ Ultimate 2019.1.2 上工作时!清除缓存无效。重新导入项目也无效。这个解决方案有效! - jbx
1
刚刚在2019.1.3进行了测试,是的,这是一个有效的解决方案。 - Miki
3
适用于 2019.3 版本! - user3150947
2
更新到2021.1版本后,对我有用。 - Marco Martins
3
我不知道为什么这个有效,但它确实有效!谢谢!IDEA版本2022.1.2 - jmrah
显示剩余5条评论

52

右键单击您的项目 / Maven(在底部)/ 重新导入

编辑,随后发现:当我安装了Clover插件时,这种情况更加频繁出现。像戒掉坏习惯一样抛弃该插件!


在较新的 IntelliJ 版本(我的是 2022.1.2),有一个“重新加载项目”选项,代替了“重新导入”。 - Mikołaj

46

在我的情况下,唯一有效的方法是:

mvn idea:idea

好的一点是,您不需要删除.idea文件夹或.iml文件并且失去所有配置。所有内容都将被保留。

(可能像gradle idea这样的命令也适用于Gradle)。


3
虽然它暂时解决了我的问题并且我点了赞,但后来我发现这个命令已经过时了,可能会造成问题。插件使用的官方页面上标注了 Apache Maven IDEA 插件(已弃用)。http://maven.apache.org/plugins/maven-idea-plugin/usage.html - Onat Korucu

27
menu -> build -> Rebuild Project

对我很有用

(不进行此步骤会使缓存无效)


3
同样的方法也帮助了我 - 右键点击项目 -> 重建模块 <模块名称>。 - genchev

19

我重新导入了所有Maven项目,这对我有用。在此输入图片描述


4
在尝试了其他建议后,这个对我起作用了。 - Albena Kertova

15
如果您将库添加到项目结构中(而不是通过Maven),请确保它已作为相关模块的依赖项包含在内。
项目结构 -> 模块 -> 依赖项

11

这是一个非常烦人的问题,经常发生,尤其是在切换到不同的git分支后。我浪费了太多时间来解决这种问题。我已经尝试了上面所有的方法。但我找不到一种可靠的方法。在这里,我总结了一些可以帮助我的步骤。Jetbrains,请修复这个问题,以节省您客户宝贵的时间。

  1. 确保成功执行命令行构建(如果UT失败,请使用-Dmaven.test.skip=true忽略UT)。
  2. 在"Maven Projects"视图中,尝试使用"reimport"重新导入所有Maven项目。
  3. 在文件菜单中,使用"Invalidate Caches"。
  4. 删除.idea文件夹,基本上从头开始创建工作区。(这是唯一可靠的解决此问题的方法)

6
我尝试了所有方法,但只有第四种方法有效。关闭IntelliJ,删除.idea文件夹,然后重新载入项目。这种情况发生在我创建新的Git分支后。 - ammills01
3
听起来像是Intellij的一个错误,我想知道是否已经为此创建了一个问题。 - Levancho
同意,这种情况发生在使用 IntelliJ 之外执行任何与 Git 相关的操作时。 同时,它会正常构建,只有当我执行Build > Recompile '<SomeClass.java>'进行热交换时才会发生。 因此,像“打开/关闭 IntelliJ”、“无效化/重建项目”之类的解决方法对我来说都不可接受。 但是这真的很恼人。 - RAM237
通常情况下,删除.idea文件夹是我唯一的解决方法,但问题是我也会失去很多其他东西。 - newhouse

11

在我的情况下,问题是IntelliJ和settings.xml文件中有不同的存储库目录配置。

检查两个存储库目录是否相同:

IntelliJ (文件 > 设置 > 构建、执行、部署 > 构建工具 > Maven)

IntelliJ 本地存储库配置

settings.xml (通常位于C:\Users\myuser\.m2/home/myuser/.m2)

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  ...
  <localRepository>C:\Users\myuser\.m2\repository</localRepository>
  ...
</settings>

修复目录后运行:

  1. 为所有项目生成文件夹并更新源代码

输入图片描述

  1. 重新导入所有Maven项目

输入图片描述


在我的settings.xml文件中添加localRepository一行解决了我的问题。我使用的是Intellij IDEA 2021.1社区版Build#IC-211.6693.111。 - Christophe Broeckx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接