Remove references to old DownloadDependencyTask

Bug: b/270105162
Change-Id: I624a55239e863fcb81b47ff382a7997722f5d119
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index a2410ae..11dde81 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -87,24 +87,6 @@
   return "****** ${title} ******"
 }
 
-fun Project.ensureThirdPartyDependencies(name : String, deps : List<ThirdPartyDependency>) : Task {
-  val outputFiles : MutableList<File> = mutableListOf()
-  val root = getRoot()
-  val depsTasks = deps.map { tpd ->
-    val projectAndTaskName = "${project.name}-$name"
-    val downloadTaskName = "download-third-party-$projectAndTaskName-${tpd.packageName}"
-    val downloadTask = tasks.register<DownloadDependencyTask>(downloadTaskName) {
-      setDependency(root.resolve(tpd.sha1File), root.resolve(tpd.path), tpd.type, root)
-    }.get()
-    outputFiles.add(tpd.path)
-    downloadTask
-  }
-  return tasks.register("ensure-third-party-$name") {
-    dependsOn(*depsTasks.toTypedArray())
-    outputs.files(outputFiles)
-  }.get()
-}
-
 /**
  * Builds a jar for each sub folder in a test source set.
  *
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
index 62328e6..bc30ac2 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadAllDependenciesTask.kt
@@ -17,7 +17,6 @@
 import org.gradle.api.tasks.InputFiles
 import org.gradle.api.tasks.OutputDirectories
 import org.gradle.api.tasks.TaskAction
-import org.gradle.api.tasks.options.Option
 import org.gradle.internal.os.OperatingSystem
 import org.gradle.workers.WorkAction
 import org.gradle.workers.WorkParameters
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt
deleted file mode 100644
index 370bcad..0000000
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DownloadDependencyTask.kt
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import DependenciesPlugin.Companion.computeRoot
-import java.io.BufferedReader
-import java.io.File
-import java.io.IOException
-import java.io.InputStreamReader
-import java.io.RandomAccessFile
-import java.lang.Thread.sleep
-import java.nio.channels.FileChannel
-import java.nio.channels.FileLock
-import java.nio.channels.OverlappingFileLockException
-import java.nio.charset.StandardCharsets
-import java.util.Arrays
-import java.util.stream.Collectors
-import javax.inject.Inject
-import org.gradle.api.DefaultTask
-import org.gradle.api.file.RegularFileProperty
-import org.gradle.api.provider.Property
-import org.gradle.api.tasks.InputFile
-import org.gradle.api.tasks.OutputDirectory
-import org.gradle.api.tasks.TaskAction
-import org.gradle.api.tasks.options.Option
-import org.gradle.internal.os.OperatingSystem
-import org.gradle.workers.WorkAction
-import org.gradle.workers.WorkParameters
-import org.gradle.workers.WorkerExecutor
-
-abstract class DownloadDependencyTask : DefaultTask() {
-
-  private var dependencyType: DependencyType = DependencyType.GOOGLE_STORAGE
-  private var _outputDir: File? = null
-  private var _tarGzFile: File? = null
-  private var _sha1File: File? = null
-  private var _root: File? = null
-
-  @InputFile
-  fun getInputFile(): File? {
-    return _sha1File
-  }
-
-  @OutputDirectory
-  fun getOutputDir(): File? {
-    return _outputDir
-  }
-
-  @Inject
-  protected abstract fun getWorkerExecutor(): WorkerExecutor?
-
-  @Option(
-    option = "dependency",
-    description = "Sets the dependency information for a cloud stored file")
-  fun setDependency(sha1File: File, outputDir: File, dependencyType: DependencyType, root: File) {
-    _outputDir = outputDir
-    _sha1File = sha1File
-    _tarGzFile = sha1File.resolveSibling(sha1File.name.replace(".sha1", ""))
-    _root = root
-    this.dependencyType = dependencyType
-  }
-
-  @TaskAction
-  fun execute() {
-    val sha1File = _sha1File!!
-    val outputDir = _outputDir!!
-    val tarGzFile = _tarGzFile!!
-    if (!sha1File.exists()) {
-      throw RuntimeException("Missing sha1 file: $sha1File")
-    }
-    if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
-      return
-    }
-    // Create a lock to ensure sequential a single downloader per third party dependency.
-    val lockFile = sha1File.parentFile.resolve(sha1File.name + ".download_deps_lock")
-    if (!lockFile.exists()) {
-      lockFile.createNewFile()
-    }
-    getWorkerExecutor()!!
-      .noIsolation()
-      .submit(RunDownload::class.java) {
-        type.set(dependencyType)
-        this.sha1File.set(sha1File)
-        this.outputDir.set(outputDir)
-        this.tarGzFile.set(tarGzFile)
-        this.lockFile.set(lockFile)
-        this.root.set(_root!!)
-      }
-  }
-
-  interface RunDownloadParameters : WorkParameters {
-    val type : Property<DependencyType>
-    val sha1File : RegularFileProperty
-    val outputDir : RegularFileProperty
-    val tarGzFile : RegularFileProperty
-    val lockFile : RegularFileProperty
-    val root : RegularFileProperty
-  }
-
-  abstract class RunDownload : WorkAction<RunDownloadParameters> {
-    override fun execute() {
-      var lock : FileLock? = null
-      try {
-        val sha1File = parameters.sha1File.asFile.get()
-        val outputDir = parameters.outputDir.asFile.get()
-        val tarGzFile = parameters.tarGzFile.asFile.get()
-        if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
-          return;
-        }
-        val lockFile = parameters.lockFile.asFile.get()
-        val channel: FileChannel = RandomAccessFile(lockFile, "rw").getChannel()
-        // Block until we have the lock.
-        var couldTakeLock = false
-        while (!couldTakeLock) {
-          try {
-            lock = channel.lock()
-            couldTakeLock = true;
-          } catch (ignored: OverlappingFileLockException) {
-            sleep(50);
-          }
-        }
-        if (!shouldExecute(outputDir, tarGzFile, sha1File)) {
-          return;
-        }
-        if (outputDir.exists() && outputDir.isDirectory) {
-          outputDir.delete()
-        }
-        when (parameters.type.get()) {
-          DependencyType.GOOGLE_STORAGE -> {
-            downloadFromGoogleStorage(parameters, sha1File)
-          }
-          DependencyType.X20 -> {
-            downloadFromX20(parameters, sha1File)
-          }
-        }
-      } catch (e: Exception) {
-        throw RuntimeException(e)
-      } finally {
-        lock?.release()
-      }
-    }
-
-    @Throws(IOException::class, InterruptedException::class)
-    private fun downloadFromGoogleStorage(parameters: RunDownloadParameters, sha1File: File) {
-      val args = Arrays.asList("-n", "-b", "r8-deps", "-s", "-u", sha1File.toString())
-      if (OperatingSystem.current().isWindows) {
-        val command: MutableList<String> = ArrayList()
-        command.add("download_from_google_storage.bat")
-        command.addAll(args)
-        runProcess(parameters, ProcessBuilder().command(command))
-      } else {
-        runProcess(
-          parameters,
-          ProcessBuilder()
-            .command("bash",
-                     "-c",
-                     "download_from_google_storage " + java.lang.String.join(" ", args)))
-      }
-    }
-
-    @Throws(IOException::class, InterruptedException::class)
-    private fun downloadFromX20(parameters: RunDownloadParameters, sha1File: File) {
-      if (OperatingSystem.current().isWindows) {
-        throw RuntimeException("Downloading from x20 unsupported on windows")
-      }
-      runProcess(parameters,
-        ProcessBuilder()
-          .command("bash", "-c", "tools/download_from_x20.py $sha1File"))
-    }
-
-    @Throws(IOException::class, InterruptedException::class)
-    private fun runProcess(parameters: RunDownloadParameters, builder: ProcessBuilder) {
-      builder.directory(parameters.root.asFile.get())
-      val command = java.lang.String.join(" ", builder.command())
-      val p = builder.start()
-      val exit = p.waitFor()
-      if (exit != 0) {
-        throw IOException("Process failed for $command\n"
-            + BufferedReader(
-            InputStreamReader(p.errorStream, StandardCharsets.UTF_8))
-            .lines()
-            .collect(Collectors.joining("\n")))
-      }
-    }
-  }
-
-  companion object {
-    fun shouldExecute(outputDir: File, tarGzFile: File, sha1File: File) : Boolean {
-      // First run will write the tar.gz file, causing the second run to still be out-of-date.
-      // Check if the modification time of the tar is newer than the sha in which case we are done.
-      if (outputDir.exists()
-        && outputDir.isDirectory
-        && outputDir.list().isNotEmpty()
-        && tarGzFile.exists()
-        && sha1File.lastModified() <= tarGzFile.lastModified()) {
-        return false
-      }
-      return true
-    }
-  }
-}
\ No newline at end of file
diff --git a/d8_r8/test_modules/tests_java_10/build.gradle.kts b/d8_r8/test_modules/tests_java_10/build.gradle.kts
index 7d653b1..fa6f761 100644
--- a/d8_r8/test_modules/tests_java_10/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_10/build.gradle.kts
@@ -26,13 +26,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesJava10")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.setFork(true)
     options.forkOptions.memoryMaximumSize = "3g"
     options.forkOptions.executable = getCompilerPath(Jdk.JDK_11)
diff --git a/d8_r8/test_modules/tests_java_10/settings.gradle.kts b/d8_r8/test_modules/tests_java_10/settings.gradle.kts
index 53e69d0..d7b2f9a 100644
--- a/d8_r8/test_modules/tests_java_10/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_10/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_10"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_11/build.gradle.kts b/d8_r8/test_modules/tests_java_11/build.gradle.kts
index f056220..d8f620f 100644
--- a/d8_r8/test_modules/tests_java_11/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_11/build.gradle.kts
@@ -26,13 +26,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesJava11")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.setFork(true)
     options.forkOptions.memoryMaximumSize = "3g"
     options.forkOptions.executable = getCompilerPath(Jdk.JDK_11)
diff --git a/d8_r8/test_modules/tests_java_11/settings.gradle.kts b/d8_r8/test_modules/tests_java_11/settings.gradle.kts
index 4dc457a..90fa823 100644
--- a/d8_r8/test_modules/tests_java_11/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_11/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_11"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_17/build.gradle.kts b/d8_r8/test_modules/tests_java_17/build.gradle.kts
index 005cb87..92f1dcd 100644
--- a/d8_r8/test_modules/tests_java_17/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_17/build.gradle.kts
@@ -26,13 +26,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesJava17")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_17.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.setFork(true)
     options.forkOptions.memoryMaximumSize = "3g"
     options.forkOptions.executable = getCompilerPath(Jdk.JDK_17)
diff --git a/d8_r8/test_modules/tests_java_17/settings.gradle.kts b/d8_r8/test_modules/tests_java_17/settings.gradle.kts
index 3312a37..fc53d30 100644
--- a/d8_r8/test_modules/tests_java_17/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_17/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_17"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_20/build.gradle.kts b/d8_r8/test_modules/tests_java_20/build.gradle.kts
index f2d2e31..43037f0 100644
--- a/d8_r8/test_modules/tests_java_20/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_20/build.gradle.kts
@@ -26,13 +26,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesJava20")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_20.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.setFork(true)
     options.forkOptions.memoryMaximumSize = "3g"
     options.forkOptions.executable = getCompilerPath(Jdk.JDK_20)
diff --git a/d8_r8/test_modules/tests_java_20/settings.gradle.kts b/d8_r8/test_modules/tests_java_20/settings.gradle.kts
index 0fc5857..85d94d0 100644
--- a/d8_r8/test_modules/tests_java_20/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_20/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_20"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_9/build.gradle.kts b/d8_r8/test_modules/tests_java_9/build.gradle.kts
index bda4b77..136a506 100644
--- a/d8_r8/test_modules/tests_java_9/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_9/build.gradle.kts
@@ -26,13 +26,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesJava9")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_9.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.setFork(true)
     options.forkOptions.memoryMaximumSize = "3g"
     options.forkOptions.executable = getCompilerPath(Jdk.JDK_9)
diff --git a/d8_r8/test_modules/tests_java_9/settings.gradle.kts b/d8_r8/test_modules/tests_java_9/settings.gradle.kts
index 2639b0f..46bc3a8 100644
--- a/d8_r8/test_modules/tests_java_9/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_9/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_9"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examples/build.gradle.kts b/d8_r8/test_modules/tests_java_examples/build.gradle.kts
index 95a9105..63584d2 100644
--- a/d8_r8/test_modules/tests_java_examples/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examples/build.gradle.kts
@@ -26,11 +26,11 @@
   testCompileOnly(Deps.mockito)
 }
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
 tasks {
+  withType<JavaCompile> {
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
+  }
+
   compileTestJava {
     options.compilerArgs = listOf("-g:source,lines")
   }
diff --git a/d8_r8/test_modules/tests_java_examples/settings.gradle.kts b/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
index 77e513f..8b0fe4e 100644
--- a/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examples/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_examples"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
index 57b641f..38406dc 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidN/build.gradle.kts
@@ -29,12 +29,8 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesAndroidN")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
   }
 }
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
index 000e19b..8a41fce 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidN/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_examplesAndroidN"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
index 062128c..2f8a9a0 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidO/build.gradle.kts
@@ -36,16 +36,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesAndroidO")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(
-    ThirdPartyDeps.examplesAndroidOLegacy,
-    Jdk.JDK_11.getThirdPartyDependency(),
-    getThirdPartyAndroidJar("lib-v26")))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     options.compilerArgs.add("-Xlint:-options")
     options.compilerArgs.add("-parameters")
   }
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
index d508d51..0c63913 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidO/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_examplesAndroidO"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
index efed289..7b418461 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidP/build.gradle.kts
@@ -29,12 +29,9 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("examplesAndroidP")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
 
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
   }
 }
diff --git a/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts b/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
index 1e0be82..bf31cb9 100644
--- a/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_examplesAndroidP/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_examplesAndroidP"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))
diff --git a/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts b/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
index 06d9518..2ca6560 100644
--- a/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_kotlinR8TestResources/build.gradle.kts
@@ -29,15 +29,13 @@
 // We just need to register the examples jars for it to be referenced by other modules.
 val buildExampleJars = buildExampleJars("kotlinR8TestResources")
 
-val thirdPartyCompileDependenciesTask = ensureThirdPartyDependencies(
-  "compileDeps",
-  listOf(Jdk.JDK_11.getThirdPartyDependency()))
-
 tasks {
   withType<JavaCompile> {
-    dependsOn(thirdPartyCompileDependenciesTask)
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
   }
+
   withType<KotlinCompile> {
+    dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
     kotlinOptions {
       jvmTarget = "1.8"
     }
diff --git a/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts b/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
index 7eb50aa..f5d5e59 100644
--- a/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_kotlinR8TestResources/settings.gradle.kts
@@ -25,3 +25,5 @@
 }
 
 rootProject.name = "tests_java_kotlinR8TestResources"
+val root = rootProject.projectDir.parentFile.parentFile
+includeBuild(root.resolve("shared"))