【问题标题】:What causes JAR files to appear empty to IntelliJ IDEA?是什么导致 JAR 文件在 IntelliJ IDEA 中显示为空?
【发布时间】:2017-02-03 19:29:37
【问题描述】:

IntelliJ 有时认为 gradle 托管的 JAR 文件依赖项为空。替换磁盘上的 JAR、同步、重新启动或清除 IntelliJ 缓存的组合无法解决此问题,因此我认为它不喜欢 JAR 文件本身的某些内容。

在项目树中:

如您所料,从 JAR 包导入失败。

然而,JAR 文件不是空的,并且 IntelliJ 工具链之外的编译工作正常。

IntelliJ 是否对可能导致此问题的 JAR 内容、格式或编码有一些严格的要求?

【问题讨论】:

  • 天真地从它们的名字来看,它们看起来像托管依赖项(maven 或类似的)。如果我没记错的话,您是否检查过它们是否已正确传输到您的本地存储库?尽管很少见,但我在存储库方面遇到了一些问题,最终我的本地存储库中的 jar 无效......
  • 是的,它们由 gradle 管理(这是 IntelliJ 中的一个 gradle 项目)。为了排除下载错误,我手动将项目 lib 目录中的文件替换为我们的工件存储库中的新副本。
  • 我对 gradle 不是非常熟悉,但我想就像 maven it downloads the dependencies to a local folder/repo 所以除非你改变它,你会在那里找到它们而不是在你的库中目录您应该能够通过转到 File -> Project structure -> Libraries 并从列表中选择一个来验证这一点。
  • 啊,您的建议指出了问题所在。这些库指向 lib/ 目录(这是我们项目的设置),但在 Project structure -> Libraries 视图中,列出了这些库的错误版本。这种情况是在从开发主管切换到较旧的分支后出现的。尽管运行Invalidate Caches / Restart...,但看起来 IntelliJ 正在缓存一些 gradle 依赖信息。我会提交一个错误!
  • 这里是错误报告。截至目前,它正在等待 JetBrains 的反馈:youtrack.jetbrains.com/issue/IDEA-161736

标签: intellij-idea gradle jar


【解决方案1】:

你的jar文件应该没有问题,一定是因为你没有将jar文件导入到项目中,你只是将它复制到里面。 所以只需右键单击它并按“添加为库”

【讨论】:

  • 我在我的问题中遗漏了一个重要的细节。这些是 gradle 托管库,这是一个 gradle 项目。抱歉,我现在正在更新问题。
【解决方案2】:

在 IntelliJ IDEA 中添加外部 jar 的步骤:

  • 从“文件”菜单中单击“文件”
  • 项目结构(CTRL + SHIFT + ALT + S on Windows/Linux
  • 在左侧面板中选择模块
  • 依赖项标签
  • '+' → JAR 或目录

通过这种方式,“jar”文件将被索引并变得可扩展。

Correct way to add external jars

【讨论】:

    猜你喜欢
    • 2022-11-17
    • 2014-01-29
    • 2023-03-18
    • 2015-03-13
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多