diff --git a/bazel/WORKSPACE b/bazel/WORKSPACE
new file mode 100644
index 0000000000..415aa398f9
--- /dev/null
+++ b/bazel/WORKSPACE
@@ -0,0 +1,31 @@
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+
+RULES_JVM_EXTERNAL_TAG = "2.0.1"
+RULES_JVM_EXTERNAL_SHA = "55e8d3951647ae3dffde22b4f7f8dee11b3f70f3f89424713debd7076197eaca"
+
+http_archive(
+ name = "rules_jvm_external",
+ strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
+ sha256 = RULES_JVM_EXTERNAL_SHA,
+ url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
+)
+
+load("@rules_jvm_external//:defs.bzl", "maven_install")
+
+maven_install(
+ artifacts = [
+ "org.apache.commons:commons-lang3:3.9"
+ ],
+ repositories = [
+ "https://repo1.maven.org/maven2",
+ ]
+)
+
+http_jar (
+ name = "apache-commons-lang",
+ url = "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.jar"
+)
+
diff --git a/bazel/bazelapp/BUILD b/bazel/bazelapp/BUILD
new file mode 100644
index 0000000000..1de95aada5
--- /dev/null
+++ b/bazel/bazelapp/BUILD
@@ -0,0 +1,7 @@
+
+java_binary (
+ name = "BazelApp",
+ srcs = glob(["src/main/java/com/baeldung/*.java"]),
+ main_class = "com.baeldung.BazelApp",
+ deps = ["//bazelgreeting:greeter", "@maven//:org_apache_commons_commons_lang3"]
+)
diff --git a/bazel/bazelapp/pom.xml b/bazel/bazelapp/pom.xml
new file mode 100644
index 0000000000..b8c658eaae
--- /dev/null
+++ b/bazel/bazelapp/pom.xml
@@ -0,0 +1,28 @@
+
+
+
+ bazel
+ com.baeldung
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ bazelapp
+
+
+
+ com.baeldung
+ bazelgreeting
+ 1.0.0-SNAPSHOT
+
+
+ org.apache.commons
+ commons-lang3
+ 3.9
+
+
+
+
+
\ No newline at end of file
diff --git a/bazel/bazelapp/src/main/java/com/baeldung/BazelApp.java b/bazel/bazelapp/src/main/java/com/baeldung/BazelApp.java
new file mode 100644
index 0000000000..e92d85018b
--- /dev/null
+++ b/bazel/bazelapp/src/main/java/com/baeldung/BazelApp.java
@@ -0,0 +1,15 @@
+package com.baeldung;
+
+import com.baeldung.Greetings;
+import org.apache.commons.lang3.StringUtils;
+
+public class BazelApp {
+
+ public static void main(String ... args) {
+ Greetings greetings = new Greetings();
+
+ System.out.println(greetings.greet("Bazel"));
+
+ System.out.println(StringUtils.lowerCase("Bazel"));
+ }
+}
diff --git a/bazel/bazelgreeting/BUILD b/bazel/bazelgreeting/BUILD
new file mode 100644
index 0000000000..6cd8bc13f7
--- /dev/null
+++ b/bazel/bazelgreeting/BUILD
@@ -0,0 +1,6 @@
+
+java_library (
+ name = "greeter",
+ srcs = glob(["src/main/java/com/baeldung/*.java"]),
+ visibility = ["//bazelapp:__pkg__"]
+)
diff --git a/bazel/bazelgreeting/pom.xml b/bazel/bazelgreeting/pom.xml
new file mode 100644
index 0000000000..d02cc02cae
--- /dev/null
+++ b/bazel/bazelgreeting/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ bazel
+ com.baeldung
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ bazelgreeting
+
+
+
\ No newline at end of file
diff --git a/bazel/bazelgreeting/src/main/java/com/baeldung/Greetings.java b/bazel/bazelgreeting/src/main/java/com/baeldung/Greetings.java
new file mode 100644
index 0000000000..0e8fae7fbe
--- /dev/null
+++ b/bazel/bazelgreeting/src/main/java/com/baeldung/Greetings.java
@@ -0,0 +1,8 @@
+package com.baeldung;
+
+public class Greetings {
+
+ public String greet(String name) {
+ return "Hello ".concat(name);
+ }
+}
diff --git a/bazel/pom.xml b/bazel/pom.xml
new file mode 100644
index 0000000000..7350d1dbe4
--- /dev/null
+++ b/bazel/pom.xml
@@ -0,0 +1,20 @@
+
+
+
+ parent-modules
+ com.baeldung
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
+
+ bazel
+ pom
+
+ bazelgreeting
+ bazelapp
+
+
+
+
\ No newline at end of file