Move to OpenJDK-11 but compile in Java 8

本小妞迷上赌 提交于 2019-12-18 05:54:55

问题


I have an existing Spring boot App that i build through gradle . All these days I have been using JDK / JRE 8 and now I am trying to use JDK-11

So to check the Compatability, I am setting the JAVA_HOME to JDK-11 but trying to compile in Java 8 mode

I added the below block in my build.gradle

compileJava {
    targetCompatibility = '1.8'
}

and then I set JAVA_HOME explicitly set JAVA_HOME=C:\Users\arun\Desktop\jdk-11.0.1

and then execute gradlew clean build

But I am stopped with the below exception

> Configure project :
Build Version = build-182-ga03cf6c

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> warning: source release 11 requires target release 11

How to point my JAVA_HOME to JDK-11 but still execute it in Java-8 mode ?


回答1:


I'd say :

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

Because the default value of sourceCompatibility is the version of the current JVM in use.

source : https://docs.gradle.org/current/userguide/java_plugin.html




回答2:


you need to set the sourceCompatibility too.

See this post here Gradle, "sourceCompatibility" vs "targetCompatibility"?




回答3:


As of Java 9 you can use the --release N option to cross-compile with Gradle. Setting the sourceCompatibility and targetCompatibility is not enough because in that case you need to set the bootClasspath to JDK N too. See What is the --release flag in the Java 9 compiler? for more details.

Instead, use the Java 9+ "--release" compilerArg like this:

compilerArgs.addAll(['--release', '8'])

https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html



来源:https://stackoverflow.com/questions/54147275/move-to-openjdk-11-but-compile-in-java-8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!