如何使用 Gradle 启用 Java 12 项预览功能?
How to enable Java 12 preview features with Gradle?
当我尝试使用 Gradle 构建具有 switch expressions 的 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')
}
要运行 app/tests 我们需要添加jvmArgs
。
示例:
test {
jvmArgs(['--enable-preview'])
}
这是另一个使用 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")
}
目前似乎没有一个地方可以定义它。您应该为所有任务类型(编译、测试运行时或 java exec 相关任务)执行此操作。我发现自己完全被:
tasks.withType(JavaCompile) {
options.compilerArgs += "--enable-preview"
}
tasks.withType(Test) {
jvmArgs += "--enable-preview"
}
tasks.withType(JavaExec) {
jvmArgs += '--enable-preview'
}
当我尝试使用 Gradle 构建具有 switch expressions 的 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')
}
要运行 app/tests 我们需要添加jvmArgs
。
示例:
test {
jvmArgs(['--enable-preview'])
}
这是另一个使用 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")
}
目前似乎没有一个地方可以定义它。您应该为所有任务类型(编译、测试运行时或 java exec 相关任务)执行此操作。我发现自己完全被:
tasks.withType(JavaCompile) {
options.compilerArgs += "--enable-preview"
}
tasks.withType(Test) {
jvmArgs += "--enable-preview"
}
tasks.withType(JavaExec) {
jvmArgs += '--enable-preview'
}