Skip to content

Commit b268fde

Browse files
authored
Allow testJvm to have paths (#9332)
1 parent ea85e01 commit b268fde

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

gradle/java_no_deps.gradle

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import org.gradle.api.internal.provider.PropertyFactory
22
import org.gradle.jvm.toolchain.internal.SpecificInstallationToolchainSpec
33

4+
import java.nio.file.Files
5+
import java.nio.file.Paths
6+
47
apply plugin: 'java-library'
58

69
apply from: "$rootDir/gradle/codenarc.gradle"
@@ -164,17 +167,22 @@ project.afterEvaluate {
164167
testJvm = javaVersions.max().toString()
165168
}
166169
if (testJvm) {
167-
def matcher = testJvm =~ /([a-zA-Z]*)([0-9]+)/
168-
if (!matcher.matches()) {
169-
throw new GradleException("Unable to find launcher for Java '$testJvm'. It needs to match '([a-zA-Z]*)([0-9]+)'.")
170-
}
171-
def testJvmLanguageVersion = matcher.group(2) as Integer
172-
def testJvmEnv = "JAVA_${testJvm}_HOME"
173-
def testJvmHome = System.getenv(testJvmEnv)
174-
if (!testJvmHome) {
175-
throw new GradleException("Unable to find launcher for Java '$testJvm'. Have you set '$testJvmEnv'?")
170+
def testJvmHomePath
171+
if (Files.exists(Paths.get(testJvm))) {
172+
testJvmHomePath = getJavaHomePath(testJvm)
173+
} else {
174+
def matcher = testJvm =~ /([a-zA-Z]*)([0-9]+)/
175+
if (!matcher.matches()) {
176+
throw new GradleException("Unable to find launcher for Java '$testJvm'. It needs to match '([a-zA-Z]*)([0-9]+)'.")
177+
}
178+
def testJvmLanguageVersion = matcher.group(2) as Integer
179+
def testJvmEnv = "JAVA_${testJvm}_HOME"
180+
def testJvmHome = System.getenv(testJvmEnv)
181+
if (!testJvmHome) {
182+
throw new GradleException("Unable to find launcher for Java '$testJvm'. Have you set '$testJvmEnv'?")
183+
}
184+
testJvmHomePath = getJavaHomePath(testJvmHome)
176185
}
177-
def testJvmHomePath = getJavaHomePath(testJvmHome)
178186
// Only change test JVM if it's not the one we are running the gradle build with
179187
if (currentJavaHomePath != testJvmHomePath) {
180188
def jvmSpec = new SpecificInstallationToolchainSpec(project.services.get(PropertyFactory), file(testJvmHomePath))

0 commit comments

Comments
 (0)