web-dev-qa-db-ja.com

GradleでJava 12プレビュー機能を有効にする方法は?

Gradleを使用してJavaコード スイッチ式 を含むコードをビルドしようとすると、次のエラーがスローされます。

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

実行してみました./gradlew build --enable-previewどちらも機能しませんでした。

Gradle 5.3.1を使用しています。

14
Murali Krishna

JavaCompileタスクを構成して、Gradleがコンパイル時にこのオプションをJavaコンパイラーに渡す)ようにする必要があります。

このようなものはうまくいくはずです:

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

アプリ/テストを実行するには、jvmArgsを追加する必要があります。

例:

test {
    jvmArgs(['--enable-preview'])
}
18
JB Nizet

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")
}

5
bentolor

現在、それを定義するための単一の場所はないようです。すべてのタスクタイプ(コンパイル、テストランタイム、またはJava exec関連のタスク)に対して実行する必要があります。

tasks.withType(JavaCompile) {
    options.compilerArgs += "--enable-preview"
}

tasks.withType(Test) {
    jvmArgs += "--enable-preview"
}

tasks.withType(JavaExec) {
    jvmArgs += '--enable-preview'
}
1
Aleksander Lech