Implement Bazel build

To run the tests:

  bazel test //...

To build the Gerrit plugin API, run:

  bazel build gerrit-plugin-api:plugin-api_deploy.jar

To build the Gerrit extension API, run:

  bazel build gerrit-extension-api:extension-api_deploy.jar

TODOs:

Licenses
Reduce visibility (all public for now)
Generate HTML Documentation
Core plugins
gerrit_plugin() rule to build plugins in tree and standalone modes
GWT UI (only gwt_module() skylark rule is provided, no gwt_binary())
PolyGerrit UI
WAR
Publish artifacts to Maven Central
Ask Bazel team to add Gerrit to their CI on ci.bazel.io

Contributed-By: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: I9a86e670882a44a5c966579cdeb8ed79b1590de3
diff --git a/gerrit-antlr/BUILD b/gerrit-antlr/BUILD
new file mode 100644
index 0000000..c955ab1
--- /dev/null
+++ b/gerrit-antlr/BUILD
@@ -0,0 +1,32 @@
+load('//tools/bzl:genrule2.bzl', 'genrule2')
+
+java_library(
+  name = 'query_exception',
+  srcs = ['src/main/java/com/google/gerrit/server/query/QueryParseException.java'],
+  visibility = ['//visibility:public'],
+)
+
+genrule2(
+  name = 'query_antlr',
+  srcs = ['src/main/antlr3/com/google/gerrit/server/query/Query.g'],
+  cmd = ' && '.join([
+    '$(location //lib/antlr:antlr-tool) -o $$TMP $<',
+    'cd $$TMP',
+    '$$ROOT/$(location @bazel_tools//tools/zip:zipper) cC $$ROOT/$@ $$(find .)'
+  ]),
+  tools = [
+    '@bazel_tools//tools/zip:zipper',
+    '//lib/antlr:antlr-tool',
+  ],
+  out = 'query_antlr.srcjar',
+)
+
+java_library(
+  name = 'query_parser',
+  srcs = [':query_antlr'],
+  deps = [
+    ':query_exception',
+    '//lib/antlr:java_runtime',
+  ],
+  visibility = ['//visibility:public'],
+)