【问题标题】:How to fix unable to find module where it can be found under an incorrect name如何修复无法以错误名称找到模块的问题
【发布时间】:2022-01-10 20:03:57
【问题描述】:

我在一个项目中使用 IntelliJ 时遇到了一个不寻常的问题,当我从我的 GitHub 存储库中克隆该项目时,它不会运行,尽管它可以构建得很好。然后我发现当我运行命令 mvn clean compile 时它会运行得很好。在使用 JetBrains 打开事件后,支持人员将项目克隆到他的机器上,并收到无法找到模块信息文件中的特定模块的错误。

然后我在虚拟机中创建了一个干净的环境,并遇到了与他相同的错误。但是 IntelliJ 通过在模块信息文件中创建一个新条目来修复该错误,在该文件中它使用较短的名称引用了该库。

具体来说,在我的正常工作环境中(在我的 Mac 上),使用此行包含该模块:

requires org.kohsuke.github.api;

但虚拟机中的修复是删除该行并改用这一行:

requires github.api;

但是当我在我的 Mac 上进行相同的更改时,IntelliJ 说它找不到模块 github.api。

我不知道如何解决这个问题。我在想我可能需要删除一些东西并让 IntelliJ / Maven 重新构建对该模块的任何引用,以便它可以“从头开始” - 本质上 - 但我不知道该怎么做,或者即使我的思路是对的。

因此,我正在从这里寻求任何智慧或建议,并将感谢您提供的任何建议。

谢谢,

迈克·西姆斯

【问题讨论】:

  • 请做一个完整的工作示例...还请提供有关 JDK、Maven 版本、IntelliJ 版本等的更多信息。
  • @khmarbaise 示例项目:github.com/RedmondSims/GistFX。 JDK 17.0.1、Maven 3.8.1、IntelliJ IDEA 2021.3.1。该问题不是特定于 IDE 的,因为该问题可以通过命令行 Maven 重现。我不知道为什么assylias 添加了这个标签。

标签: java maven intellij-idea module module-info


【解决方案1】:

JetBrains 的支持人员和我在一天中的大部分时间都在解决这个问题。最终,我们能够通过在项目关闭时从项目文件夹本身中删除 ~/Library/caches/JetBrains 文件夹和 .idea 文件夹来解决问题。然后我点击打开,进入该项目文件夹,点击 POM 文件并打开它并使用 Maven POM 文件导入项目。

关于在我的项目中没有被正确名称识别的库,我意识到前一段时间,我参与了一个拉取请求,要求该库在其清单文件中添加一个 Auto-Name 属性,并且我记得专门修改了库 .jar 文件来测试这个变化。该更改尚未发布。但是,在故障排除过程中,我最终完全删除了我的本地 Maven .m2 文件夹(以及我的 ~/Library/Application Support/JetBrains 文件夹),这促使重新下载该库,但尽管如此,IntelliJ 是仍然引用我前段时间手动添加到该 jar 文件中的名称。

在我删除该缓存文件夹和 .idea 文件夹之前,该问题无法解决。

我们一直无法深入了解 IntelliJ 为何坚持使用该库的虚名,但答案就在某个缓存文件夹中。

我意识到这种情况非常不寻常,不会发生在大多数开发人员身上,但我发布解决方案以防其他人遇到类似情况。

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2012-12-25
    • 2021-09-04
    • 2017-02-21
    相关资源
    最近更新 更多