Reland "Build apimodel cache on top of computed database builder"

This reverts commit 4e0cd0f7dc5ef7c59b328c28463693745e449e53.

Change-Id: Iaebb47b46059e98213c056618e6e24d22efedb2c
diff --git a/build.gradle b/build.gradle
index 7f0d08f..d9641a3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -538,6 +538,8 @@
     }
 }
 
+compileJava.dependsOn downloadDeps
+
 sourceSets.configureEach { sourceSet ->
     tasks.named(sourceSet.compileJavaTaskName).configure {
         // Default disable errorprone (enabled and setup below).
@@ -727,6 +729,7 @@
 }
 
 task repackageDepsNew(type: ShadowJar) {
+    dependsOn downloadDeps
     configurations = [project.configurations.runtimeClasspath]
     mergeServiceFiles(it)
     exclude { it.getRelativePath().getPathString().endsWith("module-info.class") }