diff --git a/tools/archive.py b/tools/archive.py
index 1a5de28..302b0ff 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -84,7 +84,8 @@
 
   # Generate an r8-ed build without dependencies.
   # Note: build_r8lib does a gradle-clean, this must be the first command.
-  build_r8lib('r8', True, True, utils.R8LIB_KEEP_RULES, utils.R8_EXCLUDE_DEPS_JAR)
+  build_r8lib('r8', True, True, utils.R8LIB_KEEP_RULES,
+    utils.R8LIB_EXCLUDE_DEPS_JAR)
 
   # Create maven release which uses a build that exclude dependencies.
   create_maven_release.main(["--out", utils.LIBS])
@@ -94,10 +95,17 @@
   shutil.copyfile(utils.R8_JAR, utils.R8_FULL_EXCLUDE_DEPS_JAR)
 
   # Ensure all archived artifacts has been built before archiving.
-  # The target tasks postfixed by 'r8' depend on the actual target task so
+  # The target tasks postfixed by 'lib' depend on the actual target task so
   # building it invokes the original task first.
-  gradle.RunGradle(map((lambda t: t + 'r8'),
-    [utils.D8, utils.R8, utils.COMPATDX, utils.COMPATPROGUARD]))
+  gradle.RunGradle([
+    utils.R8,
+    utils.D8,
+    utils.COMPATDX,
+    utils.COMPATPROGUARD,
+    utils.R8LIB,
+    utils.COMPATDXLIB,
+    utils.COMPATPROGUARDLIB,
+  ])
   version = GetVersion()
   is_master = IsMaster(version)
   if is_master:
@@ -116,15 +124,20 @@
           'releaser=go/r8bot (' + os.environ.get('BUILDBOT_SLAVENAME') + ')\n')
       version_writer.write('version-file.version.code=1\n')
 
-    for file in [utils.D8_JAR, utils.D8R8_JAR,
-                 utils.R8_JAR, utils.R8R8_JAR,
-                 utils.R8_SRC_JAR,
-                 utils.R8_FULL_EXCLUDE_DEPS_JAR,
-                 utils.R8_EXCLUDE_DEPS_JAR,
-                 utils.COMPATDX_JAR, utils.COMPATDXR8_JAR,
-                 utils.COMPATPROGUARD_JAR, utils.COMPATPROGUARDR8_JAR,
-                 utils.MAVEN_ZIP,
-                 utils.GENERATED_LICENSE]:
+    for file in [
+      utils.D8_JAR,
+      utils.R8_JAR,
+      utils.R8LIB_JAR,
+      utils.R8_SRC_JAR,
+      utils.R8_FULL_EXCLUDE_DEPS_JAR,
+      utils.R8LIB_EXCLUDE_DEPS_JAR,
+      utils.COMPATDX_JAR,
+      utils.COMPATDXLIB_JAR,
+      utils.COMPATPROGUARD_JAR,
+      utils.COMPATPROGUARDLIB_JAR,
+      utils.MAVEN_ZIP,
+      utils.GENERATED_LICENSE,
+    ]:
       file_name = os.path.basename(file)
       tagged_jar = os.path.join(temp, file_name)
       shutil.copyfile(file, tagged_jar)
