Gradleを使用してJavaコード スイッチ式 を含むコードをビルドしようとすると、次のエラーがスローされます。
error: switch expressions are a preview feature and are disabled by default.
実行してみました./gradlew build --enable-preview
どちらも機能しませんでした。
Gradle 5.3.1を使用しています。
JavaCompile
タスクを構成して、Gradleがコンパイル時にこのオプションをJavaコンパイラーに渡す)ようにする必要があります。
このようなものはうまくいくはずです:
tasks.withType(JavaCompile).each {
it.options.compilerArgs.add('--enable-preview')
}
アプリ/テストを実行するには、jvmArgs
を追加する必要があります。
例:
test {
jvmArgs(['--enable-preview'])
}
build.gradle.kts
で使用するためにGradle Kotlin DSLを使用する別のバージョンを次に示します。
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")
}
現在、それを定義するための単一の場所はないようです。すべてのタスクタイプ(コンパイル、テストランタイム、またはJava exec関連のタスク)に対して実行する必要があります。
tasks.withType(JavaCompile) {
options.compilerArgs += "--enable-preview"
}
tasks.withType(Test) {
jvmArgs += "--enable-preview"
}
tasks.withType(JavaExec) {
jvmArgs += '--enable-preview'
}