examples: add bazel build example

## Bazel

If you prefer to use Bazel:
```
(With Bazel v0.4.5 or above.)
$ bazel build :hello-world-server :hello-world-client
$ # Run the server:
$ bazel-bin/hello-world-server
$ # In another terminal run the client
$ bazel-bin/hello-world-client
```
diff --git a/.gitignore b/.gitignore
index 7c8b732..0858b49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
 
 # Bazel
 bazel-bin
+bazel-examples
 bazel-genfiles
 bazel-grpc-java
 bazel-out
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
new file mode 100644
index 0000000..fe6bbdd
--- /dev/null
+++ b/examples/BUILD.bazel
@@ -0,0 +1,98 @@
+load("@grpc_java//:java_grpc_library.bzl", "java_grpc_library")
+
+proto_library(
+    name = "helloworld_proto",
+    srcs = ["src/main/proto/helloworld.proto"],
+)
+
+java_proto_library(
+    name = "helloworld_java_proto",
+    deps = [":helloworld_proto"],
+)
+
+java_grpc_library(
+    name = "helloworld_java_grpc",
+    srcs = [":helloworld_proto"],
+    deps = [":helloworld_java_proto"],
+)
+
+proto_library(
+    name = "route_guide_proto",
+    srcs = ["src/main/proto/route_guide.proto"],
+)
+
+java_proto_library(
+    name = "route_guide_java_proto",
+    deps = [":route_guide_proto"],
+)
+
+java_grpc_library(
+    name = "route_guide_java_grpc",
+    srcs = [":route_guide_proto"],
+    deps = [":route_guide_java_proto"],
+)
+
+java_library(
+    name = "examples",
+    testonly = 1,
+    srcs = glob(
+        ["src/main/java/**/*.java"],
+    ),
+    resources = glob(
+        ["src/main/resources/**"],
+    ),
+    deps = [
+        ":helloworld_java_grpc",
+        ":helloworld_java_proto",
+        ":route_guide_java_grpc",
+        ":route_guide_java_proto",
+        "@com_google_api_grpc_google_common_protos//jar",
+        "@com_google_code_findbugs_jsr305//jar",
+        "@com_google_guava//jar",
+        "@com_google_protobuf//:protobuf_java_util",
+        "@com_google_protobuf_java//:protobuf_java",
+        "@grpc_java//protobuf",
+        "@grpc_java//core",
+        "@grpc_java//stub",
+    ],
+)
+
+java_binary(
+    name = "hello-world-client",
+    testonly = 1,
+    main_class = "io.grpc.examples.helloworld.HelloWorldClient",
+    runtime_deps = [
+        ":examples",
+        "@grpc_java//netty",
+    ],
+)
+
+java_binary(
+    name = "hello-world-server",
+    testonly = 1,
+    main_class = "io.grpc.examples.helloworld.HelloWorldServer",
+    runtime_deps = [
+        ":examples",
+        "@grpc_java//netty",
+    ],
+)
+
+java_binary(
+    name = "route-guide-client",
+    testonly = 1,
+    main_class = "io.grpc.examples.routeguide.RouteGuideClient",
+    runtime_deps = [
+        ":examples",
+        "@grpc_java//netty",
+    ],
+)
+
+java_binary(
+    name = "route-guide-server",
+    testonly = 1,
+    main_class = "io.grpc.examples.routeguide.RouteGuideServer",
+    runtime_deps = [
+        ":examples",
+        "@grpc_java//netty",
+    ],
+)
diff --git a/examples/README.md b/examples/README.md
index 9005299..198deb8 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -49,6 +49,18 @@
 $ mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldClient
 ```
 
+## Bazel
+
+If you prefer to use Bazel:
+```
+(With Bazel v0.4.5 or above.)
+$ bazel build :hello-world-server :hello-world-client
+$ # Run the server:
+$ bazel-bin/hello-world-server
+$ # In another terminal run the client
+$ bazel-bin/hello-world-client
+```
+
 Unit test examples
 ==============================================
 
diff --git a/examples/WORKSPACE b/examples/WORKSPACE
new file mode 100644
index 0000000..cbcd86b
--- /dev/null
+++ b/examples/WORKSPACE
@@ -0,0 +1,17 @@
+workspace(name = "examples")
+
+# For released versions, use the tagged git-repository:
+# git_repository(
+#     name = "grpc_java",
+#     remote = "https://github.com/grpc/grpc-java.git",
+#     tag = "<TAG>",
+# )
+local_repository(
+    name = "grpc_java",
+    path = "..",
+)
+
+load("@grpc_java//:repositories.bzl", "grpc_java_repositories")
+
+grpc_java_repositories()
+