Fix problems with Windows CI builds (#1566)
diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/BUILD b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/BUILD
index 23cb8d5..f51ada4 100644
--- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/BUILD
+++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/BUILD
@@ -10,7 +10,7 @@
     ),
     data = [
         "//private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/data:gradle_build_templates",
-        "//private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin:plugin_deploy_jar_deploy.jar",
+        "//private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin:plugin.jar",
         "@bazel_tools//tools/jdk:host_jdk",
         "@gradle//:distribution",
         "@gradle//:gradle-bin/README",
diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
index 2934272..eb9578b 100644
--- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
+++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleResolver.java
@@ -712,7 +712,7 @@
           runfiles
               .withSourceRepository(AutoBazelRepository_GradleResolver.NAME)
               .rlocation(
-                  "rules_jvm_external/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/plugin_deploy_jar_deploy.jar");
+                  "rules_jvm_external/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/plugin.jar");
       if (!Files.exists(Paths.get(pluginJarPath))) {
         throw new IOException("Gradle Plugin jar not found at " + pluginJarPath);
       }
diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/BUILD b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/BUILD
index 460e8c8..331a4be 100644
--- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/BUILD
+++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/plugin/BUILD
@@ -1,3 +1,4 @@
+load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
 load("@rules_java//java:java_binary.bzl", "java_binary")
 load("@rules_java//java:java_library.bzl", "java_library")
 load("@rules_jvm_external//:defs.bzl", "artifact")
@@ -27,9 +28,20 @@
 java_binary(
     name = "plugin_deploy_jar",
     main_class = "does.not.Exist",
+    runtime_deps = [":plugin"],
+)
+
+# Wrap the implicit _deploy.jar output in an explicit rule so that it
+# has well-defined build ordering in the runfiles tree. Without this,
+# Windows builds hit a race condition where the runfiles SymlinkTreeAction
+# creates a dangling junction before the deploy jar is written
+# (https://github.com/bazelbuild/bazel/issues/19018).
+copy_file(
+    name = "plugin_jar",
+    src = ":plugin_deploy_jar_deploy.jar",
+    out = "plugin.jar",
     visibility = [
         "//private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle:__subpackages__",
         "//tests:__subpackages__",
     ],
-    runtime_deps = [":plugin"],
 )
diff --git a/tests/integration/override_targets/BUILD b/tests/integration/override_targets/BUILD
index 2ad81b1..c1d4115 100644
--- a/tests/integration/override_targets/BUILD
+++ b/tests/integration/override_targets/BUILD
@@ -1,6 +1,5 @@
 load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test")
 load("@bazel_skylib//rules:build_test.bzl", "build_test")
-load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
 load("@rules_android//android:rules.bzl", "aar_import")
 load("@rules_java//java:java_library.bzl", "java_library")
 load("@rules_shell//shell:sh_test.bzl", "sh_test")