Intellij отказывается устанавливать цель Kotlin JVM на 1,8? - PullRequest
0 голосов
/ 12 февраля 2019
ParallelStreams.kts:41:15: error: calls to static methods in Java interfaces are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'
IntStream.range(0,10).parallel().forEach{a ->
         ^

Хорошо ... Я не пытаюсь скомпилировать для 1.6.

File > Project Structure > Project имеет проект sdk 1.8 и уровень языка 8.

File > Project Structure > Modules > Kotlin имеет целевую платформу: JVM 1.8.

File > Project Structure > Facets > Kotlin имеет целевую платформу: JVM 1.8.

File > Settings > Compiler > Kotlin Compiler имеет целевую версию jvm 1.8.

Myфайл сборки gradle ...

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.0'
}

group 'foo'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    //kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.3.0"

    //networking
    implementation 'com.mashape.unirest:unirest-java:1.4.9'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

У меня не хватает мест, чтобы проверить 1.8.

И да, у меня есть попытался сделать недействительным кеш и перезапустить Intellij.Это ничего не решает.

Ответы [ 4 ]

0 голосов
/ 09 мая 2019

С .kts просто используйте это:

tasks {
    withType<KotlinCompile> {
        kotlinOptions.jvmTarget = "1.8"
    }
}

// I am using latest dsl and gradle 
val kotlinVersion = "1.3.30"
val gradleVersion = "5.4+"
0 голосов
/ 12 февраля 2019

Поскольку задачи компиляции генерируются для всех соответствующих конфигураций, вполне вероятно, что просто изменить compileKotlin и compileTestKotlin недостаточно.

Попробуйте использовать фильтрацию задач для настройки всех KotlinCompile экземпляров задачи:

tasks.withType(KotlinCompile) {
    kotlinOptions.jvmTarget = "1.8"
}
0 голосов
/ 12 февраля 2019

Я думаю, что ваша проблема в расширении файла * .kts.Попробуйте создать обычный класс * .kt Kotlin.

0 голосов
/ 12 февраля 2019

Добавить sourceCompatibility и targetCompatibility для Java 1.8:

plugins {
  id 'org.jetbrains.kotlin.jvm' version '1.3.0'
}

group 'foo'
version '1.0-SNAPSHOT'

repositories {
  mavenCentral()
}

// Add compatibility
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8


dependencies {
  //kotlin
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
  implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.3.0"

  //networking
  implementation 'com.mashape.unirest:unirest-java:1.4.9'
}

compileKotlin {
  kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
  kotlinOptions.jvmTarget = "1.8"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...