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)
+        }
+    }
+}

Reply via email to