Skip to content

Commit f99a198

Browse files
Abhijit Sarkarnormanmaurer
Abhijit Sarkar
authored andcommittedJan 26, 2018
Include mvn wrapper to make setup of development env easier
Motivation: Someone intending to contribute should be able to set up their development environment quickly and easily. Modifications: - Added a Maven wrapper such that a local Maven installation isn't necessary. - Added a .gitattributes such that auto line-endings are enforced. Result: - ./mvnw is enough to build. - Git line-endings are enforced. - Fixes netty#7578.
1 parent 1df5b02 commit f99a198

7 files changed

+585
-1
lines changed
 

‎.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Set the default behavior, in case people don't have core.autocrlf set.
2+
* text=auto

‎.mvn/wrapper/maven-wrapper.jar

46.7 KB
Binary file not shown.

‎.mvn/wrapper/maven-wrapper.properties

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip

‎NOTICE.txt

+8-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Base64 Encoder and Decoder, which can be obtained at:
4242
* HOMEPAGE:
4343
* http://iharder.sourceforge.net/current/java/base64/
4444

45-
This product contains a modified portion of 'Webbit', an event based
45+
This product contains a modified portion of 'Webbit', an event based
4646
WebSocket and HTTP server, which can be obtained at:
4747

4848
* LICENSE:
@@ -212,3 +212,10 @@ provides utilities for the java.lang API, which can be obtained at:
212212
* HOMEPAGE:
213213
* https://commons.apache.org/proper/commons-lang/
214214

215+
216+
This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
217+
218+
* LICENSE:
219+
* license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
220+
* HOMEPAGE:
221+
* https://github.com/takari/maven-wrapper

‎license/LICENSE.mvn-wrapper.txt

+202
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
2+
Apache License
3+
Version 2.0, January 2004
4+
http://www.apache.org/licenses/
5+
6+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7+
8+
1. Definitions.
9+
10+
"License" shall mean the terms and conditions for use, reproduction,
11+
and distribution as defined by Sections 1 through 9 of this document.
12+
13+
"Licensor" shall mean the copyright owner or entity authorized by
14+
the copyright owner that is granting the License.
15+
16+
"Legal Entity" shall mean the union of the acting entity and all
17+
other entities that control, are controlled by, or are under common
18+
control with that entity. For the purposes of this definition,
19+
"control" means (i) the power, direct or indirect, to cause the
20+
direction or management of such entity, whether by contract or
21+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
22+
outstanding shares, or (iii) beneficial ownership of such entity.
23+
24+
"You" (or "Your") shall mean an individual or Legal Entity
25+
exercising permissions granted by this License.
26+
27+
"Source" form shall mean the preferred form for making modifications,
28+
including but not limited to software source code, documentation
29+
source, and configuration files.
30+
31+
"Object" form shall mean any form resulting from mechanical
32+
transformation or translation of a Source form, including but
33+
not limited to compiled object code, generated documentation,
34+
and conversions to other media types.
35+
36+
"Work" shall mean the work of authorship, whether in Source or
37+
Object form, made available under the License, as indicated by a
38+
copyright notice that is included in or attached to the work
39+
(an example is provided in the Appendix below).
40+
41+
"Derivative Works" shall mean any work, whether in Source or Object
42+
form, that is based on (or derived from) the Work and for which the
43+
editorial revisions, annotations, elaborations, or other modifications
44+
represent, as a whole, an original work of authorship. For the purposes
45+
of this License, Derivative Works shall not include works that remain
46+
separable from, or merely link (or bind by name) to the interfaces of,
47+
the Work and Derivative Works thereof.
48+
49+
"Contribution" shall mean any work of authorship, including
50+
the original version of the Work and any modifications or additions
51+
to that Work or Derivative Works thereof, that is intentionally
52+
submitted to Licensor for inclusion in the Work by the copyright owner
53+
or by an individual or Legal Entity authorized to submit on behalf of
54+
the copyright owner. For the purposes of this definition, "submitted"
55+
means any form of electronic, verbal, or written communication sent
56+
to the Licensor or its representatives, including but not limited to
57+
communication on electronic mailing lists, source code control systems,
58+
and issue tracking systems that are managed by, or on behalf of, the
59+
Licensor for the purpose of discussing and improving the Work, but
60+
excluding communication that is conspicuously marked or otherwise
61+
designated in writing by the copyright owner as "Not a Contribution."
62+
63+
"Contributor" shall mean Licensor and any individual or Legal Entity
64+
on behalf of whom a Contribution has been received by Licensor and
65+
subsequently incorporated within the Work.
66+
67+
2. Grant of Copyright License. Subject to the terms and conditions of
68+
this License, each Contributor hereby grants to You a perpetual,
69+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70+
copyright license to reproduce, prepare Derivative Works of,
71+
publicly display, publicly perform, sublicense, and distribute the
72+
Work and such Derivative Works in Source or Object form.
73+
74+
3. Grant of Patent License. Subject to the terms and conditions of
75+
this License, each Contributor hereby grants to You a perpetual,
76+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77+
(except as stated in this section) patent license to make, have made,
78+
use, offer to sell, sell, import, and otherwise transfer the Work,
79+
where such license applies only to those patent claims licensable
80+
by such Contributor that are necessarily infringed by their
81+
Contribution(s) alone or by combination of their Contribution(s)
82+
with the Work to which such Contribution(s) was submitted. If You
83+
institute patent litigation against any entity (including a
84+
cross-claim or counterclaim in a lawsuit) alleging that the Work
85+
or a Contribution incorporated within the Work constitutes direct
86+
or contributory patent infringement, then any patent licenses
87+
granted to You under this License for that Work shall terminate
88+
as of the date such litigation is filed.
89+
90+
4. Redistribution. You may reproduce and distribute copies of the
91+
Work or Derivative Works thereof in any medium, with or without
92+
modifications, and in Source or Object form, provided that You
93+
meet the following conditions:
94+
95+
(a) You must give any other recipients of the Work or
96+
Derivative Works a copy of this License; and
97+
98+
(b) You must cause any modified files to carry prominent notices
99+
stating that You changed the files; and
100+
101+
(c) You must retain, in the Source form of any Derivative Works
102+
that You distribute, all copyright, patent, trademark, and
103+
attribution notices from the Source form of the Work,
104+
excluding those notices that do not pertain to any part of
105+
the Derivative Works; and
106+
107+
(d) If the Work includes a "NOTICE" text file as part of its
108+
distribution, then any Derivative Works that You distribute must
109+
include a readable copy of the attribution notices contained
110+
within such NOTICE file, excluding those notices that do not
111+
pertain to any part of the Derivative Works, in at least one
112+
of the following places: within a NOTICE text file distributed
113+
as part of the Derivative Works; within the Source form or
114+
documentation, if provided along with the Derivative Works; or,
115+
within a display generated by the Derivative Works, if and
116+
wherever such third-party notices normally appear. The contents
117+
of the NOTICE file are for informational purposes only and
118+
do not modify the License. You may add Your own attribution
119+
notices within Derivative Works that You distribute, alongside
120+
or as an addendum to the NOTICE text from the Work, provided
121+
that such additional attribution notices cannot be construed
122+
as modifying the License.
123+
124+
You may add Your own copyright statement to Your modifications and
125+
may provide additional or different license terms and conditions
126+
for use, reproduction, or distribution of Your modifications, or
127+
for any such Derivative Works as a whole, provided Your use,
128+
reproduction, and distribution of the Work otherwise complies with
129+
the conditions stated in this License.
130+
131+
5. Submission of Contributions. Unless You explicitly state otherwise,
132+
any Contribution intentionally submitted for inclusion in the Work
133+
by You to the Licensor shall be under the terms and conditions of
134+
this License, without any additional terms or conditions.
135+
Notwithstanding the above, nothing herein shall supersede or modify
136+
the terms of any separate license agreement you may have executed
137+
with Licensor regarding such Contributions.
138+
139+
6. Trademarks. This License does not grant permission to use the trade
140+
names, trademarks, service marks, or product names of the Licensor,
141+
except as required for reasonable and customary use in describing the
142+
origin of the Work and reproducing the content of the NOTICE file.
143+
144+
7. Disclaimer of Warranty. Unless required by applicable law or
145+
agreed to in writing, Licensor provides the Work (and each
146+
Contributor provides its Contributions) on an "AS IS" BASIS,
147+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148+
implied, including, without limitation, any warranties or conditions
149+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150+
PARTICULAR PURPOSE. You are solely responsible for determining the
151+
appropriateness of using or redistributing the Work and assume any
152+
risks associated with Your exercise of permissions under this License.
153+
154+
8. Limitation of Liability. In no event and under no legal theory,
155+
whether in tort (including negligence), contract, or otherwise,
156+
unless required by applicable law (such as deliberate and grossly
157+
negligent acts) or agreed to in writing, shall any Contributor be
158+
liable to You for damages, including any direct, indirect, special,
159+
incidental, or consequential damages of any character arising as a
160+
result of this License or out of the use or inability to use the
161+
Work (including but not limited to damages for loss of goodwill,
162+
work stoppage, computer failure or malfunction, or any and all
163+
other commercial damages or losses), even if such Contributor
164+
has been advised of the possibility of such damages.
165+
166+
9. Accepting Warranty or Additional Liability. While redistributing
167+
the Work or Derivative Works thereof, You may choose to offer,
168+
and charge a fee for, acceptance of support, warranty, indemnity,
169+
or other liability obligations and/or rights consistent with this
170+
License. However, in accepting such obligations, You may act only
171+
on Your own behalf and on Your sole responsibility, not on behalf
172+
of any other Contributor, and only if You agree to indemnify,
173+
defend, and hold each Contributor harmless for any liability
174+
incurred by, or claims asserted against, such Contributor by reason
175+
of your accepting any such warranty or additional liability.
176+
177+
END OF TERMS AND CONDITIONS
178+
179+
APPENDIX: How to apply the Apache License to your work.
180+
181+
To apply the Apache License to your work, attach the following
182+
boilerplate notice, with the fields enclosed by brackets "[]"
183+
replaced with your own identifying information. (Don't include
184+
the brackets!) The text should be enclosed in the appropriate
185+
comment syntax for the file format. We also recommend that a
186+
file or class name and description of purpose be included on the
187+
same "printed page" as the copyright notice for easier
188+
identification within third-party archives.
189+
190+
Copyright [yyyy] [name of copyright owner]
191+
192+
Licensed under the Apache License, Version 2.0 (the "License");
193+
you may not use this file except in compliance with the License.
194+
You may obtain a copy of the License at
195+
196+
http://www.apache.org/licenses/LICENSE-2.0
197+
198+
Unless required by applicable law or agreed to in writing, software
199+
distributed under the License is distributed on an "AS IS" BASIS,
200+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201+
See the License for the specific language governing permissions and
202+
limitations under the License.

‎mvnw

+227
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
#!/bin/sh
2+
# ----------------------------------------------------------------------------
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
# ----------------------------------------------------------------------------
20+
21+
# ----------------------------------------------------------------------------
22+
# Maven2 Start Up Batch script
23+
#
24+
# Required ENV vars:
25+
# ------------------
26+
# JAVA_HOME - location of a JDK home dir
27+
#
28+
# Optional ENV vars
29+
# -----------------
30+
# M2_HOME - location of maven2's installed home dir
31+
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
32+
# e.g. to debug Maven itself, use
33+
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34+
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35+
# ----------------------------------------------------------------------------
36+
37+
if [ -z "$MAVEN_SKIP_RC" ] ; then
38+
39+
if [ -f /etc/mavenrc ] ; then
40+
. /etc/mavenrc
41+
fi
42+
43+
if [ -f "$HOME/.mavenrc" ] ; then
44+
. "$HOME/.mavenrc"
45+
fi
46+
47+
fi
48+
49+
# OS specific support. $var _must_ be set to either true or false.
50+
cygwin=false;
51+
darwin=false;
52+
mingw=false
53+
case "`uname`" in
54+
CYGWIN*) cygwin=true ;;
55+
MINGW*) mingw=true;;
56+
Darwin*) darwin=true
57+
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58+
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59+
if [ -z "$JAVA_HOME" ]; then
60+
if [ -x "/usr/libexec/java_home" ]; then
61+
export JAVA_HOME="`/usr/libexec/java_home`"
62+
else
63+
export JAVA_HOME="/Library/Java/Home"
64+
fi
65+
fi
66+
;;
67+
esac
68+
69+
if [ -z "$JAVA_HOME" ] ; then
70+
if [ -r /etc/gentoo-release ] ; then
71+
JAVA_HOME=`java-config --jre-home`
72+
fi
73+
fi
74+
75+
if [ -z "$M2_HOME" ] ; then
76+
## resolve links - $0 may be a link to maven's home
77+
PRG="$0"
78+
79+
# need this for relative symlinks
80+
while [ -h "$PRG" ] ; do
81+
ls=`ls -ld "$PRG"`
82+
link=`expr "$ls" : '.*-> \(.*\)$'`
83+
if expr "$link" : '/.*' > /dev/null; then
84+
PRG="$link"
85+
else
86+
PRG="`dirname "$PRG"`/$link"
87+
fi
88+
done
89+
90+
saveddir=`pwd`
91+
92+
M2_HOME=`dirname "$PRG"`/..
93+
94+
# make it fully qualified
95+
M2_HOME=`cd "$M2_HOME" && pwd`
96+
97+
cd "$saveddir"
98+
# echo Using m2 at $M2_HOME
99+
fi
100+
101+
# For Cygwin, ensure paths are in UNIX format before anything is touched
102+
if $cygwin ; then
103+
[ -n "$M2_HOME" ] &&
104+
M2_HOME=`cygpath --unix "$M2_HOME"`
105+
[ -n "$JAVA_HOME" ] &&
106+
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107+
[ -n "$CLASSPATH" ] &&
108+
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109+
fi
110+
111+
# For Mingw, ensure paths are in UNIX format before anything is touched
112+
if $mingw ; then
113+
[ -n "$M2_HOME" ] &&
114+
M2_HOME="`(cd "$M2_HOME"; pwd)`"
115+
[ -n "$JAVA_HOME" ] &&
116+
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117+
# TODO classpath?
118+
fi
119+
120+
if [ -z "$JAVA_HOME" ]; then
121+
javaExecutable="`which javac`"
122+
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123+
# readlink(1) is not available as standard on Solaris 10.
124+
readLink=`which readlink`
125+
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126+
if $darwin ; then
127+
javaHome="`dirname \"$javaExecutable\"`"
128+
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129+
else
130+
javaExecutable="`readlink -f \"$javaExecutable\"`"
131+
fi
132+
javaHome="`dirname \"$javaExecutable\"`"
133+
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134+
JAVA_HOME="$javaHome"
135+
export JAVA_HOME
136+
fi
137+
fi
138+
fi
139+
140+
if [ -z "$JAVACMD" ] ; then
141+
if [ -n "$JAVA_HOME" ] ; then
142+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143+
# IBM's JDK on AIX uses strange locations for the executables
144+
JAVACMD="$JAVA_HOME/jre/sh/java"
145+
else
146+
JAVACMD="$JAVA_HOME/bin/java"
147+
fi
148+
else
149+
JAVACMD="`which java`"
150+
fi
151+
fi
152+
153+
if [ ! -x "$JAVACMD" ] ; then
154+
echo "Error: JAVA_HOME is not defined correctly." >&2
155+
echo " We cannot execute $JAVACMD" >&2
156+
exit 1
157+
fi
158+
159+
if [ -z "$JAVA_HOME" ] ; then
160+
echo "Warning: JAVA_HOME environment variable is not set."
161+
fi
162+
163+
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164+
165+
# traverses directory structure from process work directory to filesystem root
166+
# first directory with .mvn subdirectory is considered project base directory
167+
find_maven_basedir() {
168+
169+
if [ -z "$1" ]
170+
then
171+
echo "Path not specified to find_maven_basedir"
172+
return 1
173+
fi
174+
175+
basedir="$1"
176+
wdir="$1"
177+
while [ "$wdir" != '/' ] ; do
178+
if [ -d "$wdir"/.mvn ] ; then
179+
basedir=$wdir
180+
break
181+
fi
182+
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
183+
if [ -d "${wdir}" ]; then
184+
wdir=`cd "$wdir/.."; pwd`
185+
fi
186+
# end of workaround
187+
done
188+
echo "${basedir}"
189+
}
190+
191+
# concatenates all lines of a file
192+
concat_lines() {
193+
if [ -f "$1" ]; then
194+
echo "$(tr -s '\n' ' ' < "$1")"
195+
fi
196+
}
197+
198+
BASE_DIR=`find_maven_basedir "$(pwd)"`
199+
if [ -z "$BASE_DIR" ]; then
200+
exit 1;
201+
fi
202+
203+
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
204+
if [ "$MVNW_VERBOSE" = true ]; then
205+
echo $MAVEN_PROJECTBASEDIR
206+
fi
207+
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
208+
209+
# For Cygwin, switch paths to Windows format before running java
210+
if $cygwin; then
211+
[ -n "$M2_HOME" ] &&
212+
M2_HOME=`cygpath --path --windows "$M2_HOME"`
213+
[ -n "$JAVA_HOME" ] &&
214+
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
215+
[ -n "$CLASSPATH" ] &&
216+
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
217+
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
218+
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
219+
fi
220+
221+
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
222+
223+
exec "$JAVACMD" \
224+
$MAVEN_OPTS \
225+
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
226+
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
227+
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

‎mvnw.cmd

+145
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
@REM ----------------------------------------------------------------------------
2+
@REM Licensed to the Apache Software Foundation (ASF) under one
3+
@REM or more contributor license agreements. See the NOTICE file
4+
@REM distributed with this work for additional information
5+
@REM regarding copyright ownership. The ASF licenses this file
6+
@REM to you under the Apache License, Version 2.0 (the
7+
@REM "License"); you may not use this file except in compliance
8+
@REM with the License. You may obtain a copy of the License at
9+
@REM
10+
@REM http://www.apache.org/licenses/LICENSE-2.0
11+
@REM
12+
@REM Unless required by applicable law or agreed to in writing,
13+
@REM software distributed under the License is distributed on an
14+
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
@REM KIND, either express or implied. See the License for the
16+
@REM specific language governing permissions and limitations
17+
@REM under the License.
18+
@REM ----------------------------------------------------------------------------
19+
20+
@REM ----------------------------------------------------------------------------
21+
@REM Maven2 Start Up Batch script
22+
@REM
23+
@REM Required ENV vars:
24+
@REM JAVA_HOME - location of a JDK home dir
25+
@REM
26+
@REM Optional ENV vars
27+
@REM M2_HOME - location of maven2's installed home dir
28+
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29+
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30+
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31+
@REM e.g. to debug Maven itself, use
32+
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33+
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34+
@REM ----------------------------------------------------------------------------
35+
36+
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37+
@echo off
38+
@REM set title of command window
39+
title %0
40+
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41+
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42+
43+
@REM set %HOME% to equivalent of $HOME
44+
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45+
46+
@REM Execute a user defined script before this one
47+
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48+
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49+
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50+
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51+
:skipRcPre
52+
53+
@setlocal
54+
55+
set ERROR_CODE=0
56+
57+
@REM To isolate internal variables from possible post scripts, we use another setlocal
58+
@setlocal
59+
60+
@REM ==== START VALIDATION ====
61+
if not "%JAVA_HOME%" == "" goto OkJHome
62+
63+
echo.
64+
echo Error: JAVA_HOME not found in your environment. >&2
65+
echo Please set the JAVA_HOME variable in your environment to match the >&2
66+
echo location of your Java installation. >&2
67+
echo.
68+
goto error
69+
70+
:OkJHome
71+
if exist "%JAVA_HOME%\bin\java.exe" goto init
72+
73+
echo.
74+
echo Error: JAVA_HOME is set to an invalid directory. >&2
75+
echo JAVA_HOME = "%JAVA_HOME%" >&2
76+
echo Please set the JAVA_HOME variable in your environment to match the >&2
77+
echo location of your Java installation. >&2
78+
echo.
79+
goto error
80+
81+
@REM ==== END VALIDATION ====
82+
83+
:init
84+
85+
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86+
@REM Fallback to current working directory if not found.
87+
88+
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89+
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90+
91+
set EXEC_DIR=%CD%
92+
set WDIR=%EXEC_DIR%
93+
:findBaseDir
94+
IF EXIST "%WDIR%"\.mvn goto baseDirFound
95+
cd ..
96+
IF "%WDIR%"=="%CD%" goto baseDirNotFound
97+
set WDIR=%CD%
98+
goto findBaseDir
99+
100+
:baseDirFound
101+
set MAVEN_PROJECTBASEDIR=%WDIR%
102+
cd "%EXEC_DIR%"
103+
goto endDetectBaseDir
104+
105+
:baseDirNotFound
106+
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107+
cd "%EXEC_DIR%"
108+
109+
:endDetectBaseDir
110+
111+
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112+
113+
@setlocal EnableExtensions EnableDelayedExpansion
114+
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115+
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116+
117+
:endReadAdditionalConfig
118+
119+
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120+
121+
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
122+
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
123+
124+
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
125+
if ERRORLEVEL 1 goto error
126+
goto end
127+
128+
:error
129+
set ERROR_CODE=1
130+
131+
:end
132+
@endlocal & set ERROR_CODE=%ERROR_CODE%
133+
134+
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
135+
@REM check for post script, once with legacy .bat ending and once with .cmd ending
136+
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
137+
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
138+
:skipRcPost
139+
140+
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
141+
if "%MAVEN_BATCH_PAUSE%" == "on" pause
142+
143+
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
144+
145+
exit /B %ERROR_CODE%

0 commit comments

Comments
 (0)
Please sign in to comment.