diff --git a/d8_r8/build.gradle.kts b/d8_r8/build.gradle.kts
index 187f708..b7eeeb82 100644
--- a/d8_r8/build.gradle.kts
+++ b/d8_r8/build.gradle.kts
@@ -9,6 +9,7 @@
 
 tasks {
   "clean" {
+    dependsOn(gradle.includedBuild("commonBuildSrc").task(":clean"))
     dependsOn(gradle.includedBuild("keepanno").task(":clean"))
     dependsOn(gradle.includedBuild("resourceshrinker").task(":clean"))
     dependsOn(gradle.includedBuild("main").task(":clean"))
diff --git a/d8_r8/test/build.gradle.kts b/d8_r8/test/build.gradle.kts
index 0535eec..2f81edc 100644
--- a/d8_r8/test/build.gradle.kts
+++ b/d8_r8/test/build.gradle.kts
@@ -43,6 +43,16 @@
     }
   }
 
+  "clean" {
+    dependsOn(gradle.includedBuild("tests_bootstrap").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_8").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_9").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_10").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_11").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_17").task(":clean"))
+    dependsOn(gradle.includedBuild("tests_java_21").task(":clean"))
+  }
+
   val packageTests by registering(Jar::class) {
     dependsOn(java8TestJarTask)
     from(java8TestJarTask.outputs.files.map(::zipTree))
diff --git a/d8_r8/test/settings.gradle.kts b/d8_r8/test/settings.gradle.kts
index 38ba359..5c2726d 100644
--- a/d8_r8/test/settings.gradle.kts
+++ b/d8_r8/test/settings.gradle.kts
@@ -28,5 +28,11 @@
 includeBuild(root.resolve("keepanno"))
 includeBuild(root.resolve("main"))
 includeBuild(root.resolve("resourceshrinker"))
-includeBuild(root.resolve("test_modules").resolve("tests_java_8"))
 includeBuild(root.resolve("test_modules").resolve("tests_bootstrap"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_8"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_9"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_10"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_11"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_17"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_21"))
+
diff --git a/d8_r8/test_modules/tests_java_8/build.gradle.kts b/d8_r8/test_modules/tests_java_8/build.gradle.kts
index d29c709..98ab1c9 100644
--- a/d8_r8/test_modules/tests_java_8/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -84,8 +84,15 @@
 }
 
 tasks {
+
+  getByName<Delete>("clean") {
+    // TODO(b/327315907): Don't generating into the root build dir.
+    delete.add(getRoot().resolveAll("build", "generated", "test", "java", "com", "android", "tools", "r8", "art"))
+  }
+
   val createArtTests by registering(Exec::class) {
     dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
+    // TODO(b/327315907): Don't generating into the root build dir.
     val outputDir = getRoot().resolveAll("build", "generated", "test", "java", "com", "android", "tools", "r8", "art")
     val createArtTestsScript = getRoot().resolveAll("tools", "create_art_tests.py")
     inputs.file(createArtTestsScript)
