xref: /aosp_15_r20/external/jazzer-api/examples/junit-spring-web/mvnw.cmd (revision 33edd6723662ea34453766bfdca85dbfdd5342b8)
1*33edd672SMark@REM ----------------------------------------------------------------------------
2*33edd672SMark@REM Licensed to the Apache Software Foundation (ASF) under one
3*33edd672SMark@REM or more contributor license agreements.  See the NOTICE file
4*33edd672SMark@REM distributed with this work for additional information
5*33edd672SMark@REM regarding copyright ownership.  The ASF licenses this file
6*33edd672SMark@REM to you under the Apache License, Version 2.0 (the
7*33edd672SMark@REM "License"); you may not use this file except in compliance
8*33edd672SMark@REM with the License.  You may obtain a copy of the License at
9*33edd672SMark@REM
10*33edd672SMark@REM    https://www.apache.org/licenses/LICENSE-2.0
11*33edd672SMark@REM
12*33edd672SMark@REM Unless required by applicable law or agreed to in writing,
13*33edd672SMark@REM software distributed under the License is distributed on an
14*33edd672SMark@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15*33edd672SMark@REM KIND, either express or implied.  See the License for the
16*33edd672SMark@REM specific language governing permissions and limitations
17*33edd672SMark@REM under the License.
18*33edd672SMark@REM ----------------------------------------------------------------------------
19*33edd672SMark
20*33edd672SMark@REM ----------------------------------------------------------------------------
21*33edd672SMark@REM Maven Start Up Batch script
22*33edd672SMark@REM
23*33edd672SMark@REM Required ENV vars:
24*33edd672SMark@REM JAVA_HOME - location of a JDK home dir
25*33edd672SMark@REM
26*33edd672SMark@REM Optional ENV vars
27*33edd672SMark@REM M2_HOME - location of maven2's installed home dir
28*33edd672SMark@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29*33edd672SMark@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30*33edd672SMark@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31*33edd672SMark@REM     e.g. to debug Maven itself, use
32*33edd672SMark@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33*33edd672SMark@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34*33edd672SMark@REM ----------------------------------------------------------------------------
35*33edd672SMark
36*33edd672SMark@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37*33edd672SMark@echo off
38*33edd672SMark@REM set title of command window
39*33edd672SMarktitle %0
40*33edd672SMark@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41*33edd672SMark@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42*33edd672SMark
43*33edd672SMark@REM set %HOME% to equivalent of $HOME
44*33edd672SMarkif "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45*33edd672SMark
46*33edd672SMark@REM Execute a user defined script before this one
47*33edd672SMarkif not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48*33edd672SMark@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49*33edd672SMarkif exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
50*33edd672SMarkif exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
51*33edd672SMark:skipRcPre
52*33edd672SMark
53*33edd672SMark@setlocal
54*33edd672SMark
55*33edd672SMarkset ERROR_CODE=0
56*33edd672SMark
57*33edd672SMark@REM To isolate internal variables from possible post scripts, we use another setlocal
58*33edd672SMark@setlocal
59*33edd672SMark
60*33edd672SMark@REM ==== START VALIDATION ====
61*33edd672SMarkif not "%JAVA_HOME%" == "" goto OkJHome
62*33edd672SMark
63*33edd672SMarkecho.
64*33edd672SMarkecho Error: JAVA_HOME not found in your environment. >&2
65*33edd672SMarkecho Please set the JAVA_HOME variable in your environment to match the >&2
66*33edd672SMarkecho location of your Java installation. >&2
67*33edd672SMarkecho.
68*33edd672SMarkgoto error
69*33edd672SMark
70*33edd672SMark:OkJHome
71*33edd672SMarkif exist "%JAVA_HOME%\bin\java.exe" goto init
72*33edd672SMark
73*33edd672SMarkecho.
74*33edd672SMarkecho Error: JAVA_HOME is set to an invalid directory. >&2
75*33edd672SMarkecho JAVA_HOME = "%JAVA_HOME%" >&2
76*33edd672SMarkecho Please set the JAVA_HOME variable in your environment to match the >&2
77*33edd672SMarkecho location of your Java installation. >&2
78*33edd672SMarkecho.
79*33edd672SMarkgoto error
80*33edd672SMark
81*33edd672SMark@REM ==== END VALIDATION ====
82*33edd672SMark
83*33edd672SMark:init
84*33edd672SMark
85*33edd672SMark@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86*33edd672SMark@REM Fallback to current working directory if not found.
87*33edd672SMark
88*33edd672SMarkset MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89*33edd672SMarkIF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90*33edd672SMark
91*33edd672SMarkset EXEC_DIR=%CD%
92*33edd672SMarkset WDIR=%EXEC_DIR%
93*33edd672SMark:findBaseDir
94*33edd672SMarkIF EXIST "%WDIR%"\.mvn goto baseDirFound
95*33edd672SMarkcd ..
96*33edd672SMarkIF "%WDIR%"=="%CD%" goto baseDirNotFound
97*33edd672SMarkset WDIR=%CD%
98*33edd672SMarkgoto findBaseDir
99*33edd672SMark
100*33edd672SMark:baseDirFound
101*33edd672SMarkset MAVEN_PROJECTBASEDIR=%WDIR%
102*33edd672SMarkcd "%EXEC_DIR%"
103*33edd672SMarkgoto endDetectBaseDir
104*33edd672SMark
105*33edd672SMark:baseDirNotFound
106*33edd672SMarkset MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107*33edd672SMarkcd "%EXEC_DIR%"
108*33edd672SMark
109*33edd672SMark:endDetectBaseDir
110*33edd672SMark
111*33edd672SMarkIF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112*33edd672SMark
113*33edd672SMark@setlocal EnableExtensions EnableDelayedExpansion
114*33edd672SMarkfor /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115*33edd672SMark@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116*33edd672SMark
117*33edd672SMark:endReadAdditionalConfig
118*33edd672SMark
119*33edd672SMarkSET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120*33edd672SMarkset WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121*33edd672SMarkset WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122*33edd672SMark
123*33edd672SMarkset DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
124*33edd672SMark
125*33edd672SMarkFOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126*33edd672SMark    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127*33edd672SMark)
128*33edd672SMark
129*33edd672SMark@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130*33edd672SMark@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131*33edd672SMarkif exist %WRAPPER_JAR% (
132*33edd672SMark    if "%MVNW_VERBOSE%" == "true" (
133*33edd672SMark        echo Found %WRAPPER_JAR%
134*33edd672SMark    )
135*33edd672SMark) else (
136*33edd672SMark    if not "%MVNW_REPOURL%" == "" (
137*33edd672SMark        SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
138*33edd672SMark    )
139*33edd672SMark    if "%MVNW_VERBOSE%" == "true" (
140*33edd672SMark        echo Couldn't find %WRAPPER_JAR%, downloading it ...
141*33edd672SMark        echo Downloading from: %DOWNLOAD_URL%
142*33edd672SMark    )
143*33edd672SMark
144*33edd672SMark    powershell -Command "&{"^
145*33edd672SMark		"$webclient = new-object System.Net.WebClient;"^
146*33edd672SMark		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147*33edd672SMark		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148*33edd672SMark		"}"^
149*33edd672SMark		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150*33edd672SMark		"}"
151*33edd672SMark    if "%MVNW_VERBOSE%" == "true" (
152*33edd672SMark        echo Finished downloading %WRAPPER_JAR%
153*33edd672SMark    )
154*33edd672SMark)
155*33edd672SMark@REM End of extension
156*33edd672SMark
157*33edd672SMark@REM Provide a "standardized" way to retrieve the CLI args that will
158*33edd672SMark@REM work with both Windows and non-Windows executions.
159*33edd672SMarkset MAVEN_CMD_LINE_ARGS=%*
160*33edd672SMark
161*33edd672SMark%MAVEN_JAVA_EXE% ^
162*33edd672SMark  %JVM_CONFIG_MAVEN_PROPS% ^
163*33edd672SMark  %MAVEN_OPTS% ^
164*33edd672SMark  %MAVEN_DEBUG_OPTS% ^
165*33edd672SMark  -classpath %WRAPPER_JAR% ^
166*33edd672SMark  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
167*33edd672SMark  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
168*33edd672SMarkif ERRORLEVEL 1 goto error
169*33edd672SMarkgoto end
170*33edd672SMark
171*33edd672SMark:error
172*33edd672SMarkset ERROR_CODE=1
173*33edd672SMark
174*33edd672SMark:end
175*33edd672SMark@endlocal & set ERROR_CODE=%ERROR_CODE%
176*33edd672SMark
177*33edd672SMarkif not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
178*33edd672SMark@REM check for post script, once with legacy .bat ending and once with .cmd ending
179*33edd672SMarkif exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
180*33edd672SMarkif exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
181*33edd672SMark:skipRcPost
182*33edd672SMark
183*33edd672SMark@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
184*33edd672SMarkif "%MAVEN_BATCH_PAUSE%"=="on" pause
185*33edd672SMark
186*33edd672SMarkif "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
187*33edd672SMark
188*33edd672SMarkcmd /C exit /B %ERROR_CODE%
189