diff --git a/tools/dev/bin/onos-gen-bazel-project b/tools/dev/bin/onos-gen-bazel-project
new file mode 100755
index 0000000..96cfc0c
--- /dev/null
+++ b/tools/dev/bin/onos-gen-bazel-project
@@ -0,0 +1,57 @@
+#!/usr/bin/env python2.7
+import os
+
+import subprocess
+
+JAVA_LANGUAGE_LEVEL = 8
+
+EXCLUDE_DIRECTORIES = (
+    "target",
+)
+
+TEST_SOURCES = (
+    "*/src/test/*",
+)
+
+TEMPLATE = """# Autogenerated with {script_name}
+workspace_type: java
+java_language_level: {language_level}
+additional_languages:
+  python
+  javascript
+
+directories:
+  .
+{exclude_dirs}
+
+targets:
+{targets}
+
+test_sources:
+{test_sources}
+"""
+
+
+def get_library_targets():
+    this_dir = os.path.dirname(os.path.realpath(__file__))
+    out = subprocess.check_output([
+        "bazel", "query", "kind(\"java_library\", //...:all)"], cwd=this_dir)
+    return out.strip().split("\n")
+
+
+def gen_project():
+    all_targets = get_library_targets()
+    all_targets.sort()
+    data = {
+        "script_name": os.path.basename(__file__),
+        "language_level": JAVA_LANGUAGE_LEVEL,
+        "exclude_dirs": "\n".join(
+            map(lambda x: "  -" + x, EXCLUDE_DIRECTORIES)),
+        "targets": "\n".join(map(lambda x: "  " + x, all_targets)),
+        "test_sources": "\n".join(map(lambda x: "  " + x, TEST_SOURCES)),
+    }
+    return TEMPLATE.format(**data)
+
+
+if __name__ == "__main__":
+    print gen_project()
