diff --git a/buildSrc/private/src/main/kotlin/androidx/build/kythe/GenerateJavaKzipTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/kythe/GenerateJavaKzipTask.kt
index fb20b69..656e1b4 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/kythe/GenerateJavaKzipTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/kythe/GenerateJavaKzipTask.kt
@@ -23,6 +23,7 @@
 import javax.inject.Inject
 import org.gradle.api.DefaultTask
 import org.gradle.api.Project
+import org.gradle.api.artifacts.Configuration
 import org.gradle.api.file.ConfigurableFileCollection
 import org.gradle.api.file.DirectoryProperty
 import org.gradle.api.file.RegularFileProperty
@@ -67,6 +68,8 @@
 
     @get:Classpath abstract val dependencyClasspath: ConfigurableFileCollection
 
+    @get:Classpath abstract val compiledSources: ConfigurableFileCollection
+
     @get:Classpath abstract val annotationProcessor: ConfigurableFileCollection
 
     @get:OutputFile abstract val kzipOutputFile: RegularFileProperty
@@ -76,19 +79,25 @@
     @TaskAction
     fun exec() {
         val sourceFiles =
-            if (sourcePaths.asFileTree.files.none { it.extension == "kt" }) {
-                sourcePaths.asFileTree.files
-                    .filter { it.extension == "java" }
-                    .map { it.relativeTo(checkoutRoot) }
-            } else {
-                emptyList()
-            }
+            sourcePaths.asFileTree.files
+                .filter { it.extension == "java" }
+                .map { it.relativeTo(checkoutRoot) }
 
         if (sourceFiles.isEmpty()) {
             return
         }
 
-        val dependencyClasspath = dependencyClasspath.filter { it.extension == "jar" }
+        val dependencyClasspath =
+            dependencyClasspath
+                .filter { it.extension == "jar" }
+                .let { filteredClasspath ->
+                    if (sourcePaths.asFileTree.files.any { it.extension == "kt" }) {
+                        filteredClasspath + compiledSources
+                    } else {
+                        filteredClasspath
+                    }
+                }
+
         val kytheBuildDirectory = kytheBuildDirectory.get().asFile.apply { mkdirs() }
 
         execOperations.javaexec {
@@ -128,6 +137,7 @@
         fun setupProject(
             project: Project,
             javaInputs: JavaCompileInputs,
+            compiledSources: Configuration,
         ) {
             val annotationProcessorPaths =
                 project.objects.fileCollection().apply {
@@ -157,6 +167,7 @@
                         dependencyClasspath.setFrom(
                             javaInputs.dependencyClasspath + javaInputs.bootClasspath
                         )
+                        this.compiledSources.setFrom(compiledSources)
                         kzipOutputFile.set(
                             project.layout.buildDirectory.file(
                                 "kzips/${project.group}-${project.name}.java.kzip"
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/kythe/KzipTasks.kt b/buildSrc/private/src/main/kotlin/androidx/build/kythe/KzipTasks.kt
index 65a84d0..481acc4 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/kythe/KzipTasks.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/kythe/KzipTasks.kt
@@ -69,7 +69,7 @@
             getDefaultTargetJavaVersion(extension.type, project.name)
         )
 
-        GenerateJavaKzipTask.setupProject(project, javaInputs)
+        GenerateJavaKzipTask.setupProject(project, javaInputs, compiledSources)
     }
 }
 
diff --git a/buildSrc/vnames.json b/buildSrc/vnames.json
index de3b27e..31eee97 100644
--- a/buildSrc/vnames.json
+++ b/buildSrc/vnames.json
@@ -7,14 +7,7 @@
     }
   },
   {
-    "pattern": "^prebuilts/androidx/external/(.*)",
-    "vname": {
-      "root": "out",
-      "path": "@1@"
-    }
-  },
-  {
-    "pattern": "^prebuilts/androidx/internal/(.*)",
+    "pattern": "^prebuilts/(.*)",
     "vname": {
       "root": "out",
       "path": "@1@"
