ИДЕЯ IntelliJ, имеющая проблемы с зависимостью от Kotlin Gradle

#java #kotlin #gradle #intellij-idea

Вопрос:

Итак, я переписываю некоторые из своих проектов с Java на Kotlin, потому что в целом мне более комфортно с языком, и я наткнулся на небольшую проблему с моей IDE (InteliJ IDEA Ultimate).

Я опубликовал одну из своих библиотек в публичном репозитории на GitHub и использовал ее в качестве зависимости в другом проекте, используя Gradle и JitPack, она загружается и включена во «Внешние библиотеки».

Однако я не могу использовать что-либо из этого в своих файлах .kt. (IDE показывает ошибку «Неразрешенная ссылка».) https://i.stack.imgur.com/qFDWN.png

Этого не происходит, когда я пытаюсь сделать то же самое на Java. (Тот же проект) https://i.stack.imgur.com/NV22F.png


build.gradle.kts

 repositories {
    mavenCentral()
    maven {
        name = "papermc-repo"
        url = uri("https://papermc.io/repo/repository/maven-public/")
    }
    maven { 
        name = "jitpack"
        url = uri("https://www.jitpack.io") 
    }
}

dependencies {
    testImplementation(kotlin("test-junit"))

    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

    compileOnly("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT")
    implementation("com.github.ThePlay3r:PLJRApi-Spigot:563362408c")
}
 

Это довольно неприятно, так как я был действительно взволнован Котлином, но это делает меня неспособным многое сделать.
У кого-нибудь есть идеи, как это исправить, или какая-либо альтернатива для добавления библиотек в мой проект?

Комментарии:

1. Я уже сталкивался с подобными проблемами раньше. Проверьте и убедитесь, что оба проекта были скомпилированы с одной и той же версией Java. Также обратите внимание: вам не нужно использовать функцию Kotlin Gradle ( build.gradle.kts ) для проектов с поддержкой Kotlin; обычной функции Gradle ( build.gradle ) также будет достаточно, как только вы добавите плагин Kotlin вверху.


Ответ №1:

По-видимому, это известная проблема, о которой сообщалось и которая отслеживается здесь: https://youtrack.jetbrains.com/issue/KT-25709.

Мое текущее временное исправление исключает некоторые файлы kotlin из shadowJar задачи.

 tasks.named<ShadowJar>("shadowJar") {
    exclude("**/*.kotlin_metadata")
    exclude("**/*.kotlin_module")
    exclude("**/*.kotlin_builtins")
}