diff --git a/tools/build/bazel/javadoc.bzl b/tools/build/bazel/javadoc.bzl
new file mode 100644
index 0000000..3c01502
--- /dev/null
+++ b/tools/build/bazel/javadoc.bzl
@@ -0,0 +1,48 @@
+# Copyright 2015 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+def _impl(ctx):
+  dir = ctx.label.name
+  jar = ctx.outputs.jar
+
+  dep_list = []
+  for dep in ctx.files.deps:
+    dep_list += [dep.path]
+
+  src_list = []
+  for src in ctx.files.srcs:
+    src_list += [src.path]
+
+  cmd = [
+      "mkdir %s" % dir,
+      "javadoc -quiet -tag onos.rsModel:a:\"onos model\" -d %s -cp %s %s" \
+          % (dir, ":".join(dep_list), " ".join(src_list)),
+      "jar cf %s -C %s ." % (jar.path, dir),
+  ]
+
+  ctx.action(
+      inputs = ctx.files.srcs + ctx.files.deps,
+      outputs = [jar],
+      command = ";\n".join(cmd)
+  )
+
+javadoc = rule(
+    attrs = {
+        "deps": attr.label_list(allow_files = True),
+        "srcs": attr.label_list(allow_files = True),
+    },
+    implementation = _impl,
+    outputs = {"jar" : "%{name}.jar"},
+)
+
diff --git a/tools/build/bazel/osgi_java_library.bzl b/tools/build/bazel/osgi_java_library.bzl
index 3930dcc..c135991 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -18,6 +18,7 @@
 load("//tools/build/bazel:variables.bzl", "ONOS_VERSION")
 load("//tools/build/bazel:generate_test_rules.bzl", "generate_test_rules")
 load("//tools/build/bazel:checkstyle.bzl", "checkstyle_test")
+load("//tools/build/bazel:javadoc.bzl", "javadoc")
 
 def _all_java_sources():
     return native.glob(["src/main/java/**/*.java"])
@@ -374,6 +375,7 @@
         version = ONOS_VERSION,
         suppress_errorprone = False,
         suppress_checkstyle = False,
+        suppress_javadocs = False,
         web_context = None,
         api_title = "",
         api_version = "",
@@ -460,6 +462,11 @@
         web_xml = web_xml,
         include_resources = _include_resources_to_string(include_resources),
     )
+
+    # rule for building javadocs
+    if not suppress_javadocs:
+      javadoc(name = name + "-javadocs", deps = deps, srcs = srcs, visibility = visibility)
+
     if test_srcs != []:
         native.java_library(
             name = tests_name,
@@ -519,6 +526,7 @@
         version = ONOS_VERSION,
         suppress_errorprone = False,
         suppress_checkstyle = False,
+        suppress_javadocs = False,
         web_context = None,
         api_title = "",
         api_version = "",
@@ -544,6 +552,7 @@
         visibility = visibility,
         suppress_errorprone = suppress_errorprone,
         suppress_checkstyle = suppress_checkstyle,
+        suppress_javadocs = suppress_javadocs,
         version = version,
         import_packages = import_packages,
         api_title = api_title,
diff --git a/tools/build/bazel/yang.bzl b/tools/build/bazel/yang.bzl
index 59a4b99..3b123b2 100644
--- a/tools/build/bazel/yang.bzl
+++ b/tools/build/bazel/yang.bzl
@@ -162,7 +162,9 @@
              resource_jars = [name + "-generate"], deps = deps,
              visibility = ["//visibility:public"],
              suppress_errorprone = True,
-             suppress_checkstyle = True)
+             suppress_checkstyle = True,
+             suppress_javadocs = True,
+    )
 
 def yang_model(
     name = None,
