#kotlin #gradle #intellij-idea #jetbrains-ide #gradle-kotlin-dsl
Вопрос:
У меня есть проект, в котором используется Kotlin 1.5 с Gradle 7 и IntelliJ 2021.1.1. Проект изначально был основан на Kotlin 1.4 и недавно был обновлен до 1.5.
Когда я создаю проект, я вижу следующее предупреждение, которое, по-видимому, связано с задачей compileTestKotlin Gradle. Для нетестовых компиляций предупреждений нет. Я просмотрел настройки IntelliJ, файлы конфигурации Gradle, но безрезультатно. Я был бы признателен за любую помощь в устранении этого предупреждения… Спасибо вам за любую помощь!
Задача :услуги:трек:compileTestKotlin w: Языковая версия 1.5 является экспериментальной, нет гарантий обратной совместимости для новых функций языка и библиотеки
Вот мои настройки компилятора в Gradle:
tasks {
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
//allWarningsAsErrors = true // best practice
apiVersion = "1.5"
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "11"
languageVersion = "1.5"
}
}
withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
kotlinOptions {
//allWarningsAsErrors = true // best practice
apiVersion = "1.5"
languageVersion = "1.5"
}
}
}
Проблема была исправлена. Папка buildSrc содержала файл build.gradle.kts с зависимостями от Kotlin 1.4. Я изменил их на 1.5, и проект строится правильно.
Комментарии:
1. Вы обновили свой плагин gradle kotlin?
plugins { kotlin("jvm") version "1.5.0" }
?2. Это действительно выглядит так, как будто вы компилируете проект с помощью компилятора Kotlin 1.4 и экспериментальной для него языковой версии 1.5. Попробуйте переключить компилятор на 1.5.
3. Спасибо вам за ваши ответы. Я добавил два изображения конфигурации Kotlin в IntelliJ. Настройки выглядят разумно, я думаю..
4. Я проработал конфигурацию сборки Gradle и обнаружил проблему, о которой вы оба упомянули… Файл build.gradle.kts в моей папке buildSrc использовал зависимость 1.4.31! Аргггг! Я исправил это, и проблема была решена. Спасибо вам за толчок в правильном направлении, джентльмены! Я опубликовал это изменение выше.