This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new fc97cb6eb27 [cleanup][build] Update bin/ scripts from Maven to Gradle
for dev classpath (#25404)
fc97cb6eb27 is described below
commit fc97cb6eb274ee86e046e2e2a1b6e1d731546e52
Author: Matteo Merli <[email protected]>
AuthorDate: Thu Mar 26 12:09:28 2026 -0700
[cleanup][build] Update bin/ scripts from Maven to Gradle for dev classpath
(#25404)
---
bin/bookkeeper | 20 ++++++--------------
bin/function-localrunner | 24 ++++++++----------------
bin/pulsar | 29 +++++++++++------------------
bin/pulsar-admin-common.sh | 20 ++++++--------------
bin/pulsar-perf | 20 ++++++--------------
distribution/server/build.gradle.kts | 13 +++++++++++++
distribution/shell/build.gradle.kts | 13 +++++++++++++
7 files changed, 63 insertions(+), 76 deletions(-)
diff --git a/bin/bookkeeper b/bin/bookkeeper
index 6a0fee9101a..11445f2f57a 100755
--- a/bin/bookkeeper
+++ b/bin/bookkeeper
@@ -99,10 +99,10 @@ if [ $? == 0 ]; then
fi
# exclude tests jar
-BUILT_JAR=`ls $BK_HOME/target/bookkeeper-server-*.jar 2> /dev/null | grep -v
tests | tail -1`
+BUILT_JAR=`ls $BK_HOME/build/libs/bookkeeper-server-*.jar 2> /dev/null | grep
-v tests | tail -1`
if [ $? != 0 ] && [ ! -e "$BOOKIE_JAR" ]; then
echo "\nCouldn't find bookkeeper jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
elif [ -e "$BUILT_JAR" ]; then
BOOKIE_JAR=$BUILT_JAR
@@ -134,21 +134,13 @@ These variable can also be set in conf/bkenv.sh
EOF
}
-add_maven_deps_to_classpath() {
- MVN="mvn"
- if [ "$MAVEN_HOME" != "" ]; then
- MVN=${MAVEN_HOME}/bin/mvn
- fi
-
- # Need to generate classpath from maven pom. This is costly so generate it
- # and cache it. Save the file into our target dir so a mvn clean will get
- # clean it up and force us create a new one.
- f="${BK_HOME}/distribution/server/target/classpath.txt"
+add_gradle_deps_to_classpath() {
+ f="${BK_HOME}/distribution/server/build/classpath.txt"
if [ ! -f "${f}" ]
then
(
cd "${BK_HOME}"
- ${MVN} -pl distribution/server generate-sources &> /dev/null
+ ./gradlew :distribution:pulsar-server-distribution:exportClasspath
--no-configuration-cache -q 2> /dev/null
)
fi
BOOKIE_CLASSPATH=${CLASSPATH}:`cat "${f}"`
@@ -159,7 +151,7 @@ if [ -d "$BK_HOME/lib" ]; then
BOOKIE_CLASSPATH=$BOOKIE_CLASSPATH:$i
done
else
- add_maven_deps_to_classpath
+ add_gradle_deps_to_classpath
fi
# if no args specified, show usage
diff --git a/bin/function-localrunner b/bin/function-localrunner
index 87f0a9a23b7..4714df74cfd 100755
--- a/bin/function-localrunner
+++ b/bin/function-localrunner
@@ -80,21 +80,13 @@ if [ -z "$PULSAR_LOG_CONF" ]; then
PULSAR_LOG_CONF=$DEFAULT_LOG_CONF
fi
-add_maven_deps_to_classpath() {
- MVN="mvn"
- if [ "$MAVEN_HOME" != "" ]; then
- MVN=${MAVEN_HOME}/bin/mvn
- fi
-
- # Need to generate classpath from maven pom. This is costly so generate it
- # and cache it. Save the file into our target dir so a mvn clean will get
- # clean it up and force us create a new one.
- f="${PULSAR_HOME}/distribution/server/target/classpath.txt"
+add_gradle_deps_to_classpath() {
+ f="${PULSAR_HOME}/distribution/server/build/classpath.txt"
if [ ! -f "${f}" ]
then
(
cd "${PULSAR_HOME}"
- ${MVN} -pl distribution/server generate-sources &> /dev/null
+ ./gradlew :distribution:pulsar-server-distribution:exportClasspath
--no-configuration-cache -q 2> /dev/null
)
fi
PULSAR_CLASSPATH=${CLASSPATH}:`cat "${f}"`
@@ -103,7 +95,7 @@ add_maven_deps_to_classpath() {
if [ -d "$PULSAR_HOME/lib" ]; then
PULSAR_CLASSPATH="$PULSAR_CLASSPATH:$PULSAR_HOME/lib/*"
else
- add_maven_deps_to_classpath
+ add_gradle_deps_to_classpath
fi
PULSAR_CLASSPATH="$PULSAR_JAR:$PULSAR_CLASSPATH:$PULSAR_EXTRA_CLASSPATH"
@@ -174,12 +166,12 @@
PY_INSTANCE_FILE=${PULSAR_PY_INSTANCE_FILE:-"${DEFAULT_PY_INSTANCE_FILE}"}
# find the java instance location
if [ ! -f "${JAVA_INSTANCE_JAR}" ]; then
# didn't find a released jar, then search the built jar
-
BUILT_JAVA_INSTANCE_JAR="${FUNCTIONS_HOME}/runtime-all/target/java-instance.jar"
+
BUILT_JAVA_INSTANCE_JAR="${FUNCTIONS_HOME}/runtime-all/build/libs/java-instance.jar"
if [ -f "${BUILT_JAVA_INSTANCE_JAR}" ]; then
JAVA_INSTANCE_JAR=${BUILT_JAVA_INSTANCE_JAR}
else
echo "\nCouldn't find pulsar java instance jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
fi
fi
@@ -187,12 +179,12 @@ fi
# find the python instance location
if [ ! -f "${PY_INSTANCE_FILE}" ]; then
# didn't find a released python instance, then search the built python
instance
-
BUILT_PY_INSTANCE_FILE="${FUNCTIONS_HOME}/instance/target/python-instance/python_instance_main.py"
+
BUILT_PY_INSTANCE_FILE="${FUNCTIONS_HOME}/instance/build/python-instance/python_instance_main.py"
if [ -f "${BUILT_PY_INSTANCE_FILE}" ]; then
PY_INSTANCE_FILE=${BUILT_PY_INSTANCE_FILE}
else
echo "\nCouldn't find pulsar python instance.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
fi
fi
diff --git a/bin/pulsar b/bin/pulsar
index 24897c3d3db..bae6168bf26 100755
--- a/bin/pulsar
+++ b/bin/pulsar
@@ -159,10 +159,10 @@ if [ $? == 0 ]; then
fi
# exclude tests jar
-BUILT_JAR=`ls $PULSAR_HOME/pulsar-broker/target/pulsar-*.jar 2> /dev/null |
grep -v tests | tail -1`
+BUILT_JAR=`ls $PULSAR_HOME/pulsar-broker/build/libs/pulsar-broker-*.jar 2>
/dev/null | grep -v tests | tail -1`
if [ $? != 0 ] && [ ! -e "$PULSAR_JAR" ]; then
echo "\nCouldn't find pulsar jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
elif [ -e "$BUILT_JAR" ]; then
PULSAR_JAR=$BUILT_JAR
@@ -175,10 +175,10 @@ fi
# find the java instance location
if [ ! -f "${JAVA_INSTANCE_JAR}" ]; then
# didn't find a released jar, then search the built jar
-
BUILT_JAVA_INSTANCE_JAR="${FUNCTIONS_HOME}/runtime-all/target/java-instance.jar"
+
BUILT_JAVA_INSTANCE_JAR="${FUNCTIONS_HOME}/runtime-all/build/libs/java-instance.jar"
if [ -z "${BUILT_JAVA_INSTANCE_JAR}" ]; then
echo "\nCouldn't find pulsar-functions java instance jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
fi
JAVA_INSTANCE_JAR=${BUILT_JAVA_INSTANCE_JAR}
@@ -187,30 +187,23 @@ fi
# find the python instance location
if [ ! -f "${PY_INSTANCE_FILE}" ]; then
# didn't find a released python instance, then search the built python
instance
-
BUILT_PY_INSTANCE_FILE="${FUNCTIONS_HOME}/instance/target/python-instance/python_instance_main.py"
+
BUILT_PY_INSTANCE_FILE="${FUNCTIONS_HOME}/instance/build/python-instance/python_instance_main.py"
if [ -z "${BUILT_PY_INSTANCE_FILE}" ]; then
echo "\nCouldn't find pulsar-functions python instance.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
fi
PY_INSTANCE_FILE=${BUILT_PY_INSTANCE_FILE}
fi
-add_maven_deps_to_classpath() {
- MVN="mvn"
- if [ "$MAVEN_HOME" != "" ]; then
- MVN=${MAVEN_HOME}/bin/mvn
- fi
-
- # Need to generate classpath from maven pom. This is costly so generate it
- # and cache it. Save the file into our target dir so a mvn clean will get
- # clean it up and force us create a new one.
- f="${PULSAR_HOME}/distribution/server/target/classpath.txt"
+add_gradle_deps_to_classpath() {
+ # Generate classpath from Gradle. Cache it for subsequent runs.
+ f="${PULSAR_HOME}/distribution/server/build/classpath.txt"
if [ ! -f "${f}" ]
then
(
cd "${PULSAR_HOME}"
- ${MVN} -pl distribution/server generate-sources &> /dev/null
+ ./gradlew :distribution:pulsar-server-distribution:exportClasspath
--no-configuration-cache -q 2> /dev/null
)
fi
PULSAR_CLASSPATH=${CLASSPATH}:`cat "${f}"`
@@ -219,7 +212,7 @@ add_maven_deps_to_classpath() {
if [ -d "$PULSAR_HOME/lib" ]; then
PULSAR_CLASSPATH=$PULSAR_CLASSPATH:$PULSAR_HOME/lib/*
else
- add_maven_deps_to_classpath
+ add_gradle_deps_to_classpath
fi
if [ -z "$PULSAR_WORKER_CONF" ]; then
diff --git a/bin/pulsar-admin-common.sh b/bin/pulsar-admin-common.sh
index 6052b4726e0..e8264795ae5 100755
--- a/bin/pulsar-admin-common.sh
+++ b/bin/pulsar-admin-common.sh
@@ -59,30 +59,22 @@ if [ $? == 0 ]; then
fi
# exclude tests jar
-BUILT_JAR=`ls $PULSAR_HOME/pulsar-client-tools/target/pulsar-*.jar 2>
/dev/null | grep -v tests | tail -1`
+BUILT_JAR=`ls
$PULSAR_HOME/pulsar-client-tools/build/libs/pulsar-client-tools-*.jar 2>
/dev/null | grep -v tests | tail -1`
if [ $? != 0 ] && [ ! -e "$PULSAR_JAR" ]; then
echo "\nCouldn't find pulsar jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
elif [ -e "$BUILT_JAR" ]; then
PULSAR_JAR=$BUILT_JAR
fi
-add_maven_deps_to_classpath() {
- MVN="mvn"
- if [ "$MAVEN_HOME" != "" ]; then
- MVN=${MAVEN_HOME}/bin/mvn
- fi
-
- # Need to generate classpath from maven pom. This is costly so generate it
- # and cache it. Save the file into our target dir so a mvn clean will get
- # clean it up and force us create a new one.
- f="${PULSAR_HOME}/distribution/shell/target/classpath.txt"
+add_gradle_deps_to_classpath() {
+ f="${PULSAR_HOME}/distribution/shell/build/classpath.txt"
if [ ! -f "${f}" ]
then
(
cd "${PULSAR_HOME}"
- ${MVN} -pl distribution/shell generate-sources &> /dev/null
+ ./gradlew :distribution:pulsar-shell-distribution:exportClasspath
--no-configuration-cache -q 2> /dev/null
)
fi
PULSAR_CLASSPATH=${CLASSPATH}:`cat "${f}"`
@@ -91,7 +83,7 @@ add_maven_deps_to_classpath() {
if [ -d "$PULSAR_HOME/lib" ]; then
PULSAR_CLASSPATH="$PULSAR_CLASSPATH:$PULSAR_HOME/lib/*"
else
- add_maven_deps_to_classpath
+ add_gradle_deps_to_classpath
fi
if [ -z "$PULSAR_CLIENT_CONF" ]; then
diff --git a/bin/pulsar-perf b/bin/pulsar-perf
index 1f9b25fd026..9f92a1ec9c5 100755
--- a/bin/pulsar-perf
+++ b/bin/pulsar-perf
@@ -56,30 +56,22 @@ if [ $? == 0 ]; then
fi
# exclude tests jar
-BUILT_JAR=`ls $PULSAR_HOME/pulsar-testclient/target/pulsar-*.jar 2> /dev/null
| grep -v tests | tail -1`
+BUILT_JAR=`ls
$PULSAR_HOME/pulsar-testclient/build/libs/pulsar-testclient-*.jar 2> /dev/null
| grep -v tests | tail -1`
if [ $? != 0 ] && [ ! -e "$PULSAR_JAR" ]; then
echo "\nCouldn't find pulsar jar.";
- echo "Make sure you've run 'mvn package'\n";
+ echo "Make sure you've run './gradlew assemble'\n";
exit 1;
elif [ -e "$BUILT_JAR" ]; then
PULSAR_JAR=$BUILT_JAR
fi
-add_maven_deps_to_classpath() {
- MVN="mvn"
- if [ "$MAVEN_HOME" != "" ]; then
- MVN=${MAVEN_HOME}/bin/mvn
- fi
-
- # Need to generate classpath from maven pom. This is costly so generate it
- # and cache it. Save the file into our target dir so a mvn clean will get
- # clean it up and force us create a new one.
- f="${PULSAR_HOME}/distribution/server/target/classpath.txt"
+add_gradle_deps_to_classpath() {
+ f="${PULSAR_HOME}/distribution/server/build/classpath.txt"
if [ ! -f "${f}" ]
then
(
cd "${PULSAR_HOME}"
- ${MVN} -pl distribution/server generate-sources &> /dev/null
+ ./gradlew :distribution:pulsar-server-distribution:exportClasspath
--no-configuration-cache -q 2> /dev/null
)
fi
PULSAR_CLASSPATH=${CLASSPATH}:`cat "${f}"`
@@ -88,7 +80,7 @@ add_maven_deps_to_classpath() {
if [ -d "$PULSAR_HOME/lib" ]; then
PULSAR_CLASSPATH="$PULSAR_CLASSPATH:$PULSAR_HOME/lib/*"
else
- add_maven_deps_to_classpath
+ add_gradle_deps_to_classpath
fi
if [ -z "$PULSAR_PERFTEST_CONF" ]; then
diff --git a/distribution/server/build.gradle.kts
b/distribution/server/build.gradle.kts
index d88dc6a37bc..af6db81b743 100644
--- a/distribution/server/build.gradle.kts
+++ b/distribution/server/build.gradle.kts
@@ -318,3 +318,16 @@ val serverDistTar by tasks.registering(Tar::class) {
tasks.named("assemble") {
dependsOn(serverDistTar)
}
+
+// Export the runtime classpath to a file for bin/ scripts to use
+// when running Pulsar from a development build (without lib/ directory)
+val exportClasspath by tasks.registering {
+ val outputFile = layout.buildDirectory.file("classpath.txt")
+ outputs.file(outputFile)
+ doLast {
+ outputFile.get().asFile.apply {
+ parentFile.mkdirs()
+ writeText(distLib.asPath)
+ }
+ }
+}
diff --git a/distribution/shell/build.gradle.kts
b/distribution/shell/build.gradle.kts
index 7053d28a05c..3e88805488a 100644
--- a/distribution/shell/build.gradle.kts
+++ b/distribution/shell/build.gradle.kts
@@ -207,3 +207,16 @@ val shellDistZip by tasks.registering(Zip::class) {
tasks.named("assemble") {
dependsOn(shellDistTar, shellDistZip)
}
+
+// Export the runtime classpath to a file for bin/ scripts to use
+// when running Pulsar CLI tools from a development build
+val exportClasspath by tasks.registering {
+ val outputFile = layout.buildDirectory.file("classpath.txt")
+ outputs.file(outputFile)
+ doLast {
+ outputFile.get().asFile.apply {
+ parentFile.mkdirs()
+ writeText(distLib.asPath)
+ }
+ }
+}