diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix index 0f11faa89313..65309c7c42de 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, @@ -286,27 +285,27 @@ rec { unwrapped = gradle; tests = { toolchains = + let + javaVersion = lib.versions.major (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 + test "$(<$out)" = "${javaVersion}" ''; } // 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..3ddc68e6ba3f --- /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(System.getProperty("java.version")); + } +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index be3d48b7b8b7..038c4fa1352b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8309,7 +8309,6 @@ with pkgs; gnumake = callPackage ../development/tools/build-managers/gnumake { }; gradle-packages = import ../development/tools/build-managers/gradle { inherit - jdk11 jdk17 jdk21 jdk23