Gradle проект строится успешно, но IntelliJ не может разрешить ссылки - PullRequest
1 голос
/ 02 мая 2020

Каждое использование следующей библиотеки 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, работают нормально.

IntelliJ's linter error

Это altv-kotlin - фуджар и даже включает источники в банке: https://gitlab.com/7Hazard/altv-kotlin/-/blob/master/build.gradle#L53
Он, в свою очередь, использует зависимость java, поэтому altv-kotlin использует некоторые Java, а конечный фиджар включает источники Kotlin и Java, если это имеет значение.

Может быть, источник по какой-то причине неправильно помещается в JAR? Я даже не смог заставить IDEA декомпилировать ссылки для автозаполнения. У меня сильное чувство, что это проблема, связанная именно с библиотекой altv-kotlin, а не с какими-либо настройками среды.

Я пытался удалить папку .idea, Invalidate Caches / Restart, update Kotlin плагин как для IDEA, так и для самостоятельных проектов, и даже обновленный IDEA с 2018 по 2020 год, но безрезультатно. Я также попробовал эти ответы, но не решил проблему:
{ ссылка }
{ ссылка }
Я также заметил предупреждение о Kotlin Runtime будучи связанным с библиотекой, но даже не будучи связанным в ней, IDEA жалуется.

1 Ответ

0 голосов
/ 08 мая 2020

Итак, локально я, кажется, решил проблему, воссоздав проект и скопировав туда исходники. Кажется, сработало, почему я не знаю.
Однако при использовании удаленной зависимости от JitPack, потому что я включил все файлы классов в JAR, чтобы он был fatjar.

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

С тех пор, как я удалил эту строку из задачи jar, IntelliJ IDEA смог нормально обрабатывать ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...