diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix index b557d85eff15..e6fbdaec0767 100644 --- a/pkgs/development/tools/build-managers/gradle/default.nix +++ b/pkgs/development/tools/build-managers/gradle/default.nix @@ -1,5 +1,4 @@ { - jdk11, jdk17, jdk21, jdk23, @@ -288,27 +287,27 @@ rec { unwrapped = gradle; tests = { toolchains = + let + javaVersion = lib.substring 0 2 (lib.getVersion jdk23); + in runCommand "detects-toolchains-from-nix-env" { # Use JDKs that are not the default for any of the gradle versions nativeBuildInputs = [ (gradle.override { javaToolchains = [ - jdk11 jdk23 ]; }) ]; - src = ./tests/java-application; + src = ./tests/toolchains; } '' cp -a $src/* . + substituteInPlace ./build.gradle --replace-fail '@JAVA_VERSION@' '${javaVersion}' env GRADLE_USER_HOME=$TMPDIR/gradle org.gradle.native.dir=$TMPDIR/native \ - gradle javaToolchains --no-daemon --quiet --console plain > $out - cat $out | grep "Language Version: 11" - cat $out | grep "Detected by: environment variable 'JAVA_TOOLCHAIN_NIX_0'" - cat $out | grep "Language Version: 23" - cat $out | grep "Detected by: environment variable 'JAVA_TOOLCHAIN_NIX_1'" + gradle run --no-daemon --quiet --console plain > $out + grep -q "JAVA_VERSION: ${javaVersion}" $out || exit 1 ''; } // gradle.tests; } diff --git a/pkgs/development/tools/build-managers/gradle/tests/toolchains/build.gradle b/pkgs/development/tools/build-managers/gradle/tests/toolchains/build.gradle new file mode 100644 index 000000000000..6ebe69eafac8 --- /dev/null +++ b/pkgs/development/tools/build-managers/gradle/tests/toolchains/build.gradle @@ -0,0 +1,11 @@ +plugins { + id('application') +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(@JAVA_VERSION@)) +} + +application { + mainClass = 'Main' +} diff --git a/pkgs/development/tools/build-managers/gradle/tests/toolchains/src/main/java/Main.java b/pkgs/development/tools/build-managers/gradle/tests/toolchains/src/main/java/Main.java new file mode 100644 index 000000000000..02a213d9fd1b --- /dev/null +++ b/pkgs/development/tools/build-managers/gradle/tests/toolchains/src/main/java/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + System.out.println("JAVA_VERSION: " + System.getProperty("java.version")); + } +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5e79fba3425e..e849f4a0da58 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8317,7 +8317,6 @@ with pkgs; gnumake = callPackage ../development/tools/build-managers/gnumake { }; gradle-packages = import ../development/tools/build-managers/gradle { inherit - jdk11 jdk17 jdk21 jdk23