d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ----------------------------------------------------------------------------
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Licensed to the Apache Software Foundation (ASF) under one
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM or more contributor license agreements. See the NOTICE file
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM distributed with this work for additional information
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM regarding copyright ownership. The ASF licenses this file
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM to you under the Apache License, Version 2.0 (the
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM "License"); you may not use this file except in compliance
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM with the License. You may obtain a copy of the License at
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM http://www.apache.org/licenses/LICENSE-2.0
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Unless required by applicable law or agreed to in writing,
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM software distributed under the License is distributed on an
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM KIND, either express or implied. See the License for the
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM specific language governing permissions and limitations
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM under the License.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ----------------------------------------------------------------------------
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ----------------------------------------------------------------------------
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Maven2 Start Up Batch script
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Required ENV vars:
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM JAVA_HOME - location of a JDK home dir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Optional ENV vars
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM M2_HOME - location of maven2's installed home dir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM e.g. to debug Maven itself, use
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ----------------------------------------------------------------------------
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@echo off
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM set %HOME% to equivalent of $HOME
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Execute a user defined script before this one
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM check for pre script, once with legacy .bat ending and once with .cmd ending
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:skipRcPre
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@setlocal
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset ERROR_CODE=0
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM To isolate internal variables from possible post scripts, we use another setlocal
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@setlocal
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ==== START VALIDATION ====
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif not "%JAVA_HOME%" == "" goto OkJHome
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho Error: JAVA_HOME not found in your environment. >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho Please set the JAVA_HOME variable in your environment to match the >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho location of your Java installation. >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariagoto error
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:OkJHome
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif exist "%JAVA_HOME%\bin\java.exe" goto init
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho Error: JAVA_HOME is set to an invalid directory. >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho JAVA_HOME = "%JAVA_HOME%" >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho Please set the JAVA_HOME variable in your environment to match the >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho location of your Java installation. >&2
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaecho.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariagoto error
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM ==== END VALIDATION ====
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:init
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset MAVEN_CMD_LINE_ARGS=%MAVEN_CONFIG% %*
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM Fallback to current working directory if not found.
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid ZakariaIF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset EXEC_DIR=%CD%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset WDIR=%EXEC_DIR%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:findBaseDir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid ZakariaIF EXIST "%WDIR%"\.mvn goto baseDirFound
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariacd ..
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid ZakariaIF "%WDIR%"=="%CD%" goto baseDirNotFound
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset WDIR=%CD%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariagoto findBaseDir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:baseDirFound
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset MAVEN_PROJECTBASEDIR=%WDIR%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariacd "%EXEC_DIR%"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariagoto endDetectBaseDir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:baseDirNotFound
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset MAVEN_PROJECTBASEDIR=%EXEC_DIR%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariacd "%EXEC_DIR%"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:endDetectBaseDir
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid ZakariaIF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@setlocal EnableExtensions EnableDelayedExpansion
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariafor /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:endReadAdditionalConfig
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid ZakariaSET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset WRAPPER_JAR=""%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar""
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif ERRORLEVEL 1 goto error
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariagoto end
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:error
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaset ERROR_CODE=1
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:end
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@endlocal & set ERROR_CODE=%ERROR_CODE%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM check for post script, once with legacy .bat ending and once with .cmd ending
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria:skipRcPost
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif "%MAVEN_BATCH_PAUSE%" == "on" pause
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaif "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakaria
d69d2e025b2dbe63dda1853449f935e1efc2cd5dFarid Zakariaexit /B %ERROR_CODE%