diff --git a/tools/build/bazel/empty_jar.bzl b/tools/build/bazel/empty_jar.bzl
new file mode 100644
index 0000000..502c304
--- /dev/null
+++ b/tools/build/bazel/empty_jar.bzl
@@ -0,0 +1,32 @@
+# 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
+
+    cmd = [
+        "touch %s" % (jar.path),
+    ]
+
+    ctx.action(
+        outputs = [jar],
+        progress_message = "Generating empty jar for %s" % ctx.attr.name,
+        command = ";\n".join(cmd),
+    )
+
+empty_jar = rule(
+    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 beba414..eddf4ac 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -22,6 +22,7 @@
 load("//tools/build/bazel:java_sources.bzl", "java_sources")
 load("//tools/build/bazel:java_sources.bzl", "java_sources_alt")
 load("//tools/build/bazel:javadoc.bzl", "javadoc")
+load("//tools/build/bazel:empty_jar.bzl", "empty_jar")
 load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
 
 def _auto_name():
@@ -384,6 +385,8 @@
             deps = deps,
             visibility = visibility,
         )
+    empty_jar(name = name + "-sources", visibility = visibility)
+    empty_jar(name = name + "-javadoc", visibility = visibility)
 
 """
     Creates an OSGI jar and test jar file from a set of source and test files.
@@ -541,6 +544,9 @@
     # rule for building javadocs
     if not suppress_javadocs:
         javadoc(name = name + "-javadoc", deps = deps, srcs = srcs, visibility = visibility)
+    else:
+        empty_jar(name = name + "-javadoc", visibility = visibility)
+        empty_jar(name = name + "-sources", visibility = visibility)
 
     if test_srcs != []:
         native.java_library(
diff --git a/tools/build/onos-publish-catalog b/tools/build/onos-publish-catalog
index 6480e3f..f60304d 100755
--- a/tools/build/onos-publish-catalog
+++ b/tools/build/onos-publish-catalog
@@ -33,14 +33,6 @@
     egrep -v '(\#|build/conf)' tools/build/publish-target-list
 }
 
-function sourceJars {
-    egrep -v '(\#|lib\:|p4runtime/proto|build/conf)' tools/build/publish-target-list
-}
-
-function javadocJars {
-    egrep -v '(\#|lib\:|p4runtime/proto|build/conf)' tools/build/publish-target-list
-}
-
 function testJars {
     egrep -v '(\#|build/conf)' tools/build/publish-test-target-list
 }
@@ -57,9 +49,9 @@
 [ $libsOnly = true ] && exit 0
 
 echo "Cataloging source jars..."
-writeCatalog $(sourceJars | sed 's/$/-sources/')
+writeCatalog $(jars | sed 's/$/-sources/')
 echo "Cataloging javadoc jars..."
-writeCatalog $(javadocJars | sed 's/$/-javadoc/')
+writeCatalog $(jars | sed 's/$/-javadoc/')
 
 echo "Cataloging oar files..."
 writeCatalog $(bazel query 'kind("_onos_oar rule", //...)')
