fix: stop Gradle daemons after dependency resolution (#1598)

Closing the ProjectConnection alone leaves the Tooling API's daemon
running for reuse. Call disconnect() on the connector so the daemon
is shut down once pinning completes.
diff --git a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleProject.java b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleProject.java
index 0a1fa95..215d2ee 100644
--- a/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleProject.java
+++ b/private/tools/java/com/github/bazelbuild/rules_jvm_external/resolver/gradle/GradleProject.java
@@ -39,6 +39,7 @@
   private final EventListener eventListener;
   private final Path initScript;
 
+  private GradleConnector connector;
   private ProjectConnection connection;
 
   public GradleProject(
@@ -68,12 +69,12 @@
     // Use gradleCacheDir as gradle.user.home for complete isolation.
     // When RJE_UNSAFE_CACHE is set, the user's caches are symlinked into this directory.
     System.setProperty("org.gradle.parallel", "true");
-    connection =
+    connector =
         GradleConnector.newConnector()
             .forProjectDirectory(projectDir.toFile())
             .useInstallation(gradlePath.toFile())
-            .useGradleUserHomeDir(gradleCacheDir.toFile())
-            .connect();
+            .useGradleUserHomeDir(gradleCacheDir.toFile());
+    connection = connector.connect();
   }
 
   /** Triggers dependency resolution by running the custom task to resolve gradle dependencies */
@@ -102,9 +103,17 @@
 
   @Override
   public void close() throws Exception {
-    if (connection != null) {
-      connection.close();
-      connection = null;
+    try {
+      if (connection != null) {
+        connection.close();
+        connection = null;
+      }
+    } finally {
+      // Stops any Gradle daemons started by this connector so we don't leave them running.
+      if (connector != null) {
+        connector.disconnect();
+        connector = null;
+      }
     }
   }