【发布时间】: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