You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.0 KiB
80 lines
3.0 KiB
// ----------------------------------------------------------------------------- |
|
// |
|
// This script adds support for the following two JVM system properties |
|
// that control the build for alternative JDKs (i.e., a JDK other than |
|
// the one used to launch the Gradle process). |
|
// |
|
// - customJavaHome: absolute path to the alternate JDK installation to |
|
// use to compile Java code and execute tests. This system property |
|
// is also used in spring-oxm.gradle to determine whether JiBX is |
|
// supported. |
|
// |
|
// - customJavaSourceVersion: Java version supplied to the `--release` |
|
// command line flag to control the Java source and target |
|
// compatibility version. Supported versions include 9 or higher. |
|
// Do not set this system property if Java 8 should be used. |
|
// |
|
// Examples: |
|
// |
|
// ./gradlew -DcustomJavaHome=/Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home test |
|
// |
|
// ./gradlew --no-build-cache -DcustomJavaHome=/Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home test |
|
// |
|
// ./gradlew -DcustomJavaHome=/Library/Java/JavaVirtualMachines/jdk-14.jdk/Contents/Home -DcustomJavaSourceVersion=14 test |
|
// |
|
// |
|
// Credits: inspired by work from Marc Philipp and Stephane Nicoll |
|
// |
|
// ----------------------------------------------------------------------------- |
|
|
|
import org.gradle.internal.os.OperatingSystem |
|
// import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile |
|
|
|
def customJavaHome = System.getProperty("customJavaHome") |
|
|
|
if (customJavaHome) { |
|
def customJavaHomeDir = new File(customJavaHome) |
|
def customJavaSourceVersion = System.getProperty("customJavaSourceVersion") |
|
|
|
tasks.withType(JavaCompile) { |
|
logger.info("Java home for " + it.name + " task in " + project.name + ": " + customJavaHomeDir) |
|
options.forkOptions.javaHome = customJavaHomeDir |
|
inputs.property("customJavaHome", customJavaHome) |
|
if (customJavaSourceVersion) { |
|
options.compilerArgs += [ "--release", customJavaSourceVersion] |
|
inputs.property("customJavaSourceVersion", customJavaSourceVersion) |
|
} |
|
} |
|
|
|
tasks.withType(GroovyCompile) { |
|
logger.info("Java home for " + it.name + " task in " + project.name + ": " + customJavaHomeDir) |
|
options.forkOptions.javaHome = customJavaHomeDir |
|
inputs.property("customJavaHome", customJavaHome) |
|
if (customJavaSourceVersion) { |
|
options.compilerArgs += [ "--release", customJavaSourceVersion] |
|
inputs.property("customJavaSourceVersion", customJavaSourceVersion) |
|
} |
|
} |
|
|
|
/* |
|
tasks.withType(KotlinJvmCompile) { |
|
logger.info("Java home for " + it.name + " task in " + project.name + ": " + customJavaHome) |
|
kotlinOptions.jdkHome = customJavaHomeDir |
|
inputs.property("customJavaHome", customJavaHome) |
|
} |
|
*/ |
|
|
|
tasks.withType(Test) { |
|
def javaExecutable = customJavaHome + "/bin/java" |
|
if (OperatingSystem.current().isWindows()) { |
|
javaExecutable += ".exe" |
|
} |
|
logger.info("Java executable for " + it.name + " task in " + project.name + ": " + javaExecutable) |
|
executable = javaExecutable |
|
inputs.property("customJavaHome", customJavaHome) |
|
if (customJavaSourceVersion) { |
|
inputs.property("customJavaSourceVersion", customJavaSourceVersion) |
|
} |
|
} |
|
|
|
}
|
|
|