From 14e6e9067458fef03f95cac251228ea7b176ad0b Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Tue, 26 Aug 2025 18:25:52 -0400 Subject: [PATCH 1/2] Support Maven 4 by setting maven.mainClass to MavenCling --- maven-wrapper-distribution/src/resources/mvnw | 2 ++ maven-wrapper-distribution/src/resources/mvnw.cmd | 2 ++ 2 files changed, 4 insertions(+) diff --git a/maven-wrapper-distribution/src/resources/mvnw b/maven-wrapper-distribution/src/resources/mvnw index 6deb5c2b..cea31344 100755 --- a/maven-wrapper-distribution/src/resources/mvnw +++ b/maven-wrapper-distribution/src/resources/mvnw @@ -327,6 +327,7 @@ fi MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" export MAVEN_CMD_LINE_ARGS +MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain # shellcheck disable=SC2086 # safe args @@ -335,4 +336,5 @@ exec "$JAVACMD" \ $MAVEN_DEBUG_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + "-Dmaven.mainClass=${MAVEN_MAIN_CLASS}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/maven-wrapper-distribution/src/resources/mvnw.cmd b/maven-wrapper-distribution/src/resources/mvnw.cmd index 708460f9..b7eda070 100644 --- a/maven-wrapper-distribution/src/resources/mvnw.cmd +++ b/maven-wrapper-distribution/src/resources/mvnw.cmd @@ -117,6 +117,7 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/@@project.version@@/maven-wrapper-@@project.version@@.jar" @@ -182,6 +183,7 @@ set MAVEN_CMD_LINE_ARGS=%* %MAVEN_DEBUG_OPTS% ^ -classpath %WRAPPER_JAR% ^ "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + "-Dmaven.mainClass=%MAVEN_MAIN_CLASS%" ^ %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end From f5099ac43eca930b6bce2f79988cbda30d43c5ae Mon Sep 17 00:00:00 2001 From: Jeremy Landis Date: Sun, 21 Sep 2025 17:40:11 -0400 Subject: [PATCH 2/2] Add comment as to why maven main class is in wrapper --- maven-wrapper-distribution/src/resources/mvnw | 1 + maven-wrapper-distribution/src/resources/mvnw.cmd | 2 ++ 2 files changed, 3 insertions(+) diff --git a/maven-wrapper-distribution/src/resources/mvnw b/maven-wrapper-distribution/src/resources/mvnw index cea31344..81742994 100755 --- a/maven-wrapper-distribution/src/resources/mvnw +++ b/maven-wrapper-distribution/src/resources/mvnw @@ -327,6 +327,7 @@ fi MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" export MAVEN_CMD_LINE_ARGS +# Maven main class is here to fix maven 4.0.0-beta-5 through 4.0.0-rc-4 MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain diff --git a/maven-wrapper-distribution/src/resources/mvnw.cmd b/maven-wrapper-distribution/src/resources/mvnw.cmd index b7eda070..bbe401c4 100644 --- a/maven-wrapper-distribution/src/resources/mvnw.cmd +++ b/maven-wrapper-distribution/src/resources/mvnw.cmd @@ -117,6 +117,8 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" + +@REM Maven main class is here to fix maven 4.0.0-beta-5 through 4.0.0-rc-4 set MAVEN_MAIN_CLASS=org.apache.maven.cling.MavenCling set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain