【问题标题】:IntelliJ reports package does not exist (only on Windows)IntelliJ 报告包不存在(仅在 Windows 上)
【发布时间】:2021-03-28 13:03:30
【问题描述】:

我对整个 Java 生态系统还很陌生,我已经花费了数小时来获得与 IntelliJ 一起工作的外部依赖项。我使用一个简单的 Java 应用程序,其中包含一个 App.java,其中包含:

package com.example.maven;

import com.google.common.collect.ImmutableList;

public class App
{
    public static void main( String[] args )
    {
        ImmutableList<String> list = ImmutableList.of("hello", "world");
        for (String item : list) {
            System.out.println( item );
        }
    }
}

pom.xml 包含对 com.google.guava 的依赖项(ImmutableList 需要),如下所示:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>30.1-jre</version>
</dependency>

每当我尝试调试时,我都会收到无法加载com.google.common.collect.ImmutableList 的错误。我还尝试克隆 https://github.com/tfnico/guava-example(将 Java 版本更新为受支持的版本),但没有成功。

这似乎是我的 Windows PC 的问题。我的 Mac 没有任何问题,但我已从 Windows PC 中删除所有内容(Java JRE、SDK、IntelliJ 并重新安装)。我不想在我的 Mac 上开发。为什么这在 Windows 上不起作用???

【问题讨论】:

  • 你可以创建一个 gradle 项目(在 IntelliJ 中)并使用 implementation 添加依赖项
  • @IntoVoid 我不想使用 Gradle,因为其他一切都在 Maven 中。但我刚刚发现这只是我的 Windows 机器上的一个问题 :-(

标签: java maven intellij-idea guava


【解决方案1】:

您能否分享您的整个 pom.xml 并解释“调试”的确切含义? IntelliJ 调试器? 我试图重现您的错误,但没有奏效。我可以在“正常”运行模式和调试模式下运行程序而不会出现任何错误。 像这样正确导入依赖了吗?

<dependencies>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>30.1-jre</version>
    </dependency>
</dependencies>

您是否重新加载了 Maven 项目以便它真正下载了依赖项? See how to reload

【讨论】:

  • 这更像是一个评论而不是一个答案。
  • 我已将一个示例推送到github.com/ramondeklein/maventest,其中包含完整的pom.xml。第二次提交还包含所有 IDEA 文件。我尝试使用“运行”-“调试...”,然后它显示“java:com.google.common.collect 包不存在”。很奇怪,我找不到使用外部模块的 IntelliJ 和 Maven 的简单示例。没有外部模块它工作正常...
  • 仅供参考:我也试过这个例子,得到“包 org.apache.logging.log4j 不存在”。可能是我的 Windows 安装有问题吗?
【解决方案2】:

我猜我的 IntelliJ 设置有问题。我做了以下步骤,然后它工作了:

  1. 删除我系统上的所有 Java 安装。
  2. 删除 IntelliJ
  3. 删除 /.m2 中的所有 JDK 和文件。
  4. 删除所有 .idea 文件夹、.iml 文件和目标文件夹。
  5. 重新安装 IntelliJ
  6. 重新安装 Zulu 15 JDK
  7. 运行文件 - 管理 IDE 设置 - 恢复默认设置
  8. 加载项目

然后调试工作。不知道为什么...

【讨论】:

    【解决方案3】:

    今天早上我遇到了同样的问题,我通过以下步骤解决了它:

    1. 关闭 Intellij
    2. 删除文件夹 [HOME]/.m2/repository
    3. 删除文件夹 [MY_PROJECT]/.idea/libraries
    4. 打开 Intellij
    5. mvn 依赖:解决
    6. mvn 安装

    我认为只做 6 个(没有 5 个)可能会起作用

    【讨论】:

      【解决方案4】:

      检查找不到的依赖项(包)是否被注释为仅runtime 需要。如果在 import 语句中引用它,这显然是不正确的,在这种情况下,compile 也需要它。

      如果是这样的话,那么

      • 对于 maven:删除依赖声明下方的 &lt;scope&gt;runtime&lt;/scope&gt;
      • 对于 gradle:将依赖声明前面的 runtime 更改为 compileimplementation

      【讨论】:

        猜你喜欢
        • 2013-06-01
        • 1970-01-01
        • 2018-10-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        相关资源
        最近更新 更多