【问题标题】:Gradle project builds successfully but IntelliJ cannot resolve referencesGradle 项目构建成功,但 IntelliJ 无法解析引用
【发布时间】:2020-05-02 09:10:59
【问题描述】:

以下 Kotlin 库的每次使用都可以编译并且可以使用,但 IntelliJ 的自动完成功能(可能还有其他)无法解析引用。 https://gitlab.com/7Hazard/altv-kotlin

我通过 JitPack 将其用作依赖项:https://jitpack.io/#com.gitlab.7Hazard/altv-kotlin
JDK 11,Gradle 6.3(包装器)

gradle 项目构建良好,但只是自动完成功能被破坏。其他依赖项,如 kotlinx.coroutines 工作正常。

altv-kotlin 是一个 fatjar,甚至包含 jar 中的源代码:https://gitlab.com/7Hazard/altv-kotlin/-/blob/master/build.gradle#L53
它又使用了一个 java 依赖,所以altv-kotlin 使用了一些 Java 并且最后的 fatjar 包括 Kotlin 和 Java 源,如果这会有所不同的话。

可能是因为某种原因没有正确地将源放入 JAR 中吗?我什至无法让 IDEA 反编译自动完成的引用。我有一种强烈的感觉,这是一个与 altv-kotlin 库相关的问题,而不是我的任何环境设置。

我尝试删除 .idea 文件夹,使缓存无效/重新启动,为 IDEA 和 gradle 项目更新 Kotlin 插件,甚至从 2018 年到 2020 年更新 IDEA,但无济于事。 我也尝试了这些答案,但没有解决问题:
https://stackoverflow.com/a/56619181/8122837
https://stackoverflow.com/a/5905931/8122837
我还注意到有关 Kotlin Runtime 与库捆绑的警告,但即使没有捆绑在其中,IDEA 也会抱怨。

【问题讨论】:

  • 这能回答你的问题吗? File -> Invalidate Caches and Restart -> Invalidate and Restart
  • @AnimeshSahu 不,我在帖子中说过我已经尝试过多种方式
  • 它是否适用于较旧的 Gradle 版本(例如 5.1)?
  • @y.bedrov 这是我升级前用的

标签: java kotlin gradle intellij-idea


【解决方案1】:

所以,我似乎在本地通过重新创建项目并将源代码复制到那里解决了这个问题。好像有效果,不知道为什么。
但是,当使用来自 JitPack 的远程依赖时,因为我在 JAR 中包含了所有类文件以使其成为 fatjar。

jar {
    from configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it)
}

自从我从jar 任务中删除该行后,IntelliJ IDEA 就能够正常解析引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-29
    • 2018-03-06
    • 2020-10-18
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2021-05-25
    • 2014-04-04
    相关资源
    最近更新 更多