diff --git a/tools/archive.py b/tools/archive.py
index fd250dd..8de974f 100755
--- a/tools/archive.py
+++ b/tools/archive.py
@@ -171,7 +171,9 @@
         if (not options.skip_gradle_build):
             gradle.RunGradle([
                 utils.GRADLE_TASK_CONSOLIDATED_LICENSE,
-                utils.GRADLE_TASK_KEEP_ANNO_JAR, utils.GRADLE_TASK_R8,
+                utils.GRADLE_TASK_KEEP_ANNO_JAR,
+                utils.GRADLE_TASK_KEEP_ANNO_DOC,
+                utils.GRADLE_TASK_R8,
                 utils.GRADLE_TASK_R8LIB, utils.GRADLE_TASK_R8LIB_NO_DEPS,
                 utils.GRADLE_TASK_THREADING_MODULE_BLOCKING,
                 utils.GRADLE_TASK_THREADING_MODULE_SINGLE_THREADED,
@@ -229,6 +231,25 @@
             '-PspdxRevision=' + GetGitHash()
         ])
 
+        # Upload directories.
+        dirs_for_archiving = [
+            (utils.KEEPANNO_ANNOTATIONS_DOC, "keepanno/javadoc"),
+        ]
+        for (src_dir, dst_dir) in dirs_for_archiving:
+            destination = GetUploadDestination(version, dst_dir, is_main)
+            print(f'Uploading {src_dir} to {destination}')
+            if options.dry_run:
+                if options.dry_run_output:
+                    dry_run_destination = os.path.join(options.dry_run_output, dst_dir)
+                    print(f'Dry run, not actually uploading. Copying to {dry_run_destination}')
+                    shutil.copytree(src_dir, dry_run_destination)
+                else:
+                    print('Dry run, not actually uploading')
+            else:
+                utils.upload_directory_to_cloud_storage(src_dir, destination)
+                print(f'Directory available at: {GetUrl(version, dst_dir, is_main)}')
+
+        # Upload files.
         for_archiving = [
             utils.R8_JAR, utils.R8LIB_JAR, utils.R8LIB_JAR + '.map',
             utils.R8LIB_JAR + '_map.zip', utils.R8_FULL_EXCLUDE_DEPS_JAR,
