Как включить функции предварительного просмотра Java 12 с Gradle? - PullRequest
7 голосов
/ 30 марта 2019

Когда я пытался построить свой Java-код с выражениями переключателя , используя Gradle, он выдает эту ошибку:

error: switch expressions are a preview feature and are disabled by default.

Я пытался запустить ./gradlew build --enable-preview, который тоже не работал.

Я использую Gradle 5.3.1.

Ответы [ 2 ]

10 голосов
/ 30 марта 2019

Вам нужно настроить задачи JavaCompile, чтобы Gradle передавал эту опцию компилятору Java при компиляции.

Что-то вроде этого должно работать:

tasks.withType(JavaCompile).each {
    it.options.compilerArgs.add('--enable-preview')
}

Для запускаприложение / тесты нам нужно добавить jvmArgs.

Пример:

test {
    jvmArgs(['--enable-preview'])
}
1 голос
/ 06 июня 2019

Вот еще одна версия, использующая Gradle Kotlin DSL для использования в build.gradle.kts:

plugins {
    `java-library`
}

repositories {
    mavenCentral()
}

java {
    sourceCompatibility = JavaVersion.VERSION_12
}

tasks.withType<JavaCompile> {
    options.compilerArgs.add("--enable-preview")
}
tasks.test {
    useJUnitPlatform()
    jvmArgs("--enable-preview")
}

dependencies {
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.4.2")
    testImplementation("org.junit.jupiter:junit-jupiter-engine:5.4.2")
}

...