diff --git a/test-support/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java b/test-support/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java index 996ea9b0faf..46cb31d2f5b 100644 --- a/test-support/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java +++ b/test-support/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java @@ -210,12 +210,25 @@ public class GradleBuild { } private File getTestKitDir() { - File build = this.buildOutput.getRootLocation(); - File testKitRoot = new File(build, "gradle-test-kit"); + File testKitRoot = getTestKitRoot(); String gradleVersion = (this.gradleVersion != null) ? this.gradleVersion : "default"; return new File(testKitRoot, gradleVersion).getAbsoluteFile(); } + private File getTestKitRoot() { + File build = this.buildOutput.getRootLocation(); + if (isWindows() && build.getAbsolutePath().length() >= 80) { + return new File(System.getProperty("java.io.tmpdir"), "gradle-test-kit"); + } + else { + return new File(build, "gradle-test-kit"); + } + } + + private boolean isWindows() { + return File.separatorChar == '\\'; + } + public File getProjectDir() { return this.projectDir; }