Bazel: Generate javadoc

TEST PLAN:

  $ bazel build blame-cache:javadoc
  $ bazel build gitiles-servlet:javadoc

Change-Id: I03d5d8855ec16eadc9e525d52b210afe0eef98cf
diff --git a/blame-cache/BUILD b/blame-cache/BUILD
index 9b1a966..024399d 100644
--- a/blame-cache/BUILD
+++ b/blame-cache/BUILD
@@ -11,3 +11,17 @@
     visibility = ["//visibility:public"],
     deps = DEPS,
 )
+
+load("@com_googlesource_gerrit_bazlets//tools:javadoc.bzl", "java_doc")
+
+java_doc(
+    name = "javadoc",
+    libs = [
+        ":lib",
+        "//lib:guava",
+        "//lib/jgit:jgit",
+    ],
+    pkgs = ["com.google.gitiles.blame"],
+    title = "Blame Cache API Documentation",
+    visibility = ["//visibility:public"],
+)
diff --git a/gitiles-servlet/BUILD b/gitiles-servlet/BUILD
index e19f329..803f62e 100644
--- a/gitiles-servlet/BUILD
+++ b/gitiles-servlet/BUILD
@@ -1,3 +1,27 @@
+DEPS = [
+    "//blame-cache:lib",
+    "//lib:autolink",
+    "//lib:commons-lang",
+    "//lib:gson",
+    "//lib:guava",
+    "//lib:joda-time",
+    "//lib:jsr305",
+    "//lib:commonmark",
+    "//lib:cm-autolink",
+    "//lib:gfm-tables",
+    "//lib:gfm-strikethrough",
+    "//lib:prettify",
+    "//lib/jgit:jgit",
+    "//lib/jgit:jgit-servlet",
+    "//lib/slf4j:slf4j-api",
+    "//lib/soy:soy",
+]
+
+DEPS_ALL = DEPS + [
+    "//lib/jgit:jgit-archive",
+    "//lib/guice:guice",
+]
+
 java_library(
     name = "servlet-api",
     neverlink = 1,
@@ -9,26 +33,8 @@
     srcs = glob(["src/main/java/**/*.java"]),
     resources = glob(["src/main/resources/**/*"]),
     visibility = ["//visibility:public"],
-    deps = [
+    deps = DEPS_ALL + [
         ":servlet-api",
-        "//blame-cache:lib",
-        "//lib:autolink",
-        "//lib:cm-autolink",
-        "//lib:commonmark",
-        "//lib:commons-lang",
-        "//lib:gfm-strikethrough",
-        "//lib:gfm-tables",
-        "//lib:gson",
-        "//lib:guava",
-        "//lib:joda-time",
-        "//lib:jsr305",
-        "//lib:prettify",
-        "//lib/guice",
-        "//lib/jgit",
-        "//lib/jgit:jgit-archive",
-        "//lib/jgit:jgit-servlet",
-        "//lib/slf4j:slf4j-api",
-        "//lib/soy",
     ],
 )
 
@@ -38,14 +44,10 @@
         ["src/test/java/**/*.java"],
         exclude = ["src/test/java/**/*Test.java"],
     ) + glob(["**/ServletTest.java"]),
-    deps = [
+    deps = DEPS + [
         ":servlet",
-        "//lib:gson",
-        "//lib:guava",
         "//lib:servlet-api_2_5",
         "//lib:truth",
-        "//lib/jgit",
-        "//lib/jgit:jgit-servlet",
         "//lib/jgit:junit",
         "//lib/junit",
     ],
@@ -61,24 +63,25 @@
         ],
         exclude = ["**/ServletTest.java"],
     ),
+    visibility = ["//visibility:public"],
     runtime_deps = ["//lib/junit:hamcrest-core"],
-    deps = [
+    deps = DEPS + [
         ":servlet",
         ":testutil",
-        "//lib:autolink",
-        "//lib:cm-autolink",
-        "//lib:commonmark",
-        "//lib:gfm-strikethrough",
-        "//lib:gfm-tables",
-        "//lib:gson",
-        "//lib:guava",
-        "//lib:joda-time",
         "//lib:servlet-api_2_5",
         "//lib:truth",
-        "//lib/jgit",
-        "//lib/jgit:jgit-servlet",
         "//lib/jgit:junit",
         "//lib/junit",
-        "//lib/soy",
     ],
 )
+
+load("@com_googlesource_gerrit_bazlets//tools:javadoc.bzl", "java_doc")
+
+java_doc(
+    name = "javadoc",
+    libs = DEPS + [
+        ":servlet",
+    ],
+    pkgs = ["com.google.gitiles"],
+    title = "Gitiles API Documentation",
+)