以下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
是一个胖子,甚至在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也会抱怨。
答案 0 :(得分:0)
因此,在本地,我似乎已经通过重新创建项目并将源复制到其中来解决了该问题。似乎有用,为什么我不知道。
但是,当使用来自JitPack的远程依赖项时,因为我将JAR中的所有类文件都包含在内,以使其成为胖子。
jar {
from configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it)
}
自从我从jar
任务中删除该行以来,IntelliJ IDEA便能够正常解析引用。