Skip to content

Commit 06506cd

Browse files
build: Add Maven Wrapper to the project (#588)
Co-authored-by: Oliver-Loeffler <Oliver-Loeffler@users.noreply.github.com>
1 parent 12175cf commit 06506cd

File tree

5 files changed

+498
-0
lines changed

5 files changed

+498
-0
lines changed

.mvn/wrapper/maven-wrapper.jar

58.5 KB
Binary file not shown.

.mvn/wrapper/maven-wrapper.properties

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
18+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,16 @@ These are the requisites:
4040

4141
### How to build Scene Builder ###
4242

43+
Scene Builder makes use of the Maven Wrapper to build and run the project. So there is no need to install Maven on the developers machine. To utilize Maven Wrapper, instead of calling `mvn`, one can run `./mvnw` on Linux or macOS or `mvnw` on Windows instead.
44+
4345
To build the Scene Builder services, on the project's root, run:
4446

4547
`mvn clean package`
4648

49+
Alternatively, utilizing the Maven Wrapper, one can run:
50+
51+
`./mvnw clean package`
52+
4753
It will create a partial shadow cross-platform jar under `app/target/lib/scenebuilder-$version.jar`, that doesn't include the JavaFX dependencies.
4854

4955
### How to run Scene Builder ###

mvnw

+287
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
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+
# Apache Maven Wrapper startup batch script, version 3.1.1
23+
#
24+
# Required ENV vars:
25+
# ------------------
26+
# JAVA_HOME - location of a JDK home dir
27+
#
28+
# Optional ENV vars
29+
# -----------------
30+
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
31+
# e.g. to debug Maven itself, use
32+
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33+
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34+
# ----------------------------------------------------------------------------
35+
36+
if [ -z "$MAVEN_SKIP_RC" ] ; then
37+
38+
if [ -f /usr/local/etc/mavenrc ] ; then
39+
. /usr/local/etc/mavenrc
40+
fi
41+
42+
if [ -f /etc/mavenrc ] ; then
43+
. /etc/mavenrc
44+
fi
45+
46+
if [ -f "$HOME/.mavenrc" ] ; then
47+
. "$HOME/.mavenrc"
48+
fi
49+
50+
fi
51+
52+
# OS specific support. $var _must_ be set to either true or false.
53+
cygwin=false;
54+
darwin=false;
55+
mingw=false
56+
case "`uname`" in
57+
CYGWIN*) cygwin=true ;;
58+
MINGW*) mingw=true;;
59+
Darwin*) darwin=true
60+
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
61+
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
62+
if [ -z "$JAVA_HOME" ]; then
63+
if [ -x "/usr/libexec/java_home" ]; then
64+
JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME
65+
else
66+
JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
67+
fi
68+
fi
69+
;;
70+
esac
71+
72+
if [ -z "$JAVA_HOME" ] ; then
73+
if [ -r /etc/gentoo-release ] ; then
74+
JAVA_HOME=`java-config --jre-home`
75+
fi
76+
fi
77+
78+
# For Cygwin, ensure paths are in UNIX format before anything is touched
79+
if $cygwin ; then
80+
[ -n "$JAVA_HOME" ] &&
81+
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
82+
[ -n "$CLASSPATH" ] &&
83+
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
84+
fi
85+
86+
# For Mingw, ensure paths are in UNIX format before anything is touched
87+
if $mingw ; then
88+
[ -n "$JAVA_HOME" ] &&
89+
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
90+
fi
91+
92+
if [ -z "$JAVA_HOME" ]; then
93+
javaExecutable="`which javac`"
94+
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
95+
# readlink(1) is not available as standard on Solaris 10.
96+
readLink=`which readlink`
97+
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
98+
if $darwin ; then
99+
javaHome="`dirname \"$javaExecutable\"`"
100+
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
101+
else
102+
javaExecutable="`readlink -f \"$javaExecutable\"`"
103+
fi
104+
javaHome="`dirname \"$javaExecutable\"`"
105+
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
106+
JAVA_HOME="$javaHome"
107+
export JAVA_HOME
108+
fi
109+
fi
110+
fi
111+
112+
if [ -z "$JAVACMD" ] ; then
113+
if [ -n "$JAVA_HOME" ] ; then
114+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
115+
# IBM's JDK on AIX uses strange locations for the executables
116+
JAVACMD="$JAVA_HOME/jre/sh/java"
117+
else
118+
JAVACMD="$JAVA_HOME/bin/java"
119+
fi
120+
else
121+
JAVACMD="`\\unset -f command; \\command -v java`"
122+
fi
123+
fi
124+
125+
if [ ! -x "$JAVACMD" ] ; then
126+
echo "Error: JAVA_HOME is not defined correctly." >&2
127+
echo " We cannot execute $JAVACMD" >&2
128+
exit 1
129+
fi
130+
131+
if [ -z "$JAVA_HOME" ] ; then
132+
echo "Warning: JAVA_HOME environment variable is not set."
133+
fi
134+
135+
# traverses directory structure from process work directory to filesystem root
136+
# first directory with .mvn subdirectory is considered project base directory
137+
find_maven_basedir() {
138+
if [ -z "$1" ]
139+
then
140+
echo "Path not specified to find_maven_basedir"
141+
return 1
142+
fi
143+
144+
basedir="$1"
145+
wdir="$1"
146+
while [ "$wdir" != '/' ] ; do
147+
if [ -d "$wdir"/.mvn ] ; then
148+
basedir=$wdir
149+
break
150+
fi
151+
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
152+
if [ -d "${wdir}" ]; then
153+
wdir=`cd "$wdir/.."; pwd`
154+
fi
155+
# end of workaround
156+
done
157+
printf '%s' "$(cd "$basedir"; pwd)"
158+
}
159+
160+
# concatenates all lines of a file
161+
concat_lines() {
162+
if [ -f "$1" ]; then
163+
echo "$(tr -s '\n' ' ' < "$1")"
164+
fi
165+
}
166+
167+
BASE_DIR=$(find_maven_basedir "$(dirname $0)")
168+
if [ -z "$BASE_DIR" ]; then
169+
exit 1;
170+
fi
171+
172+
MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
173+
if [ "$MVNW_VERBOSE" = true ]; then
174+
echo $MAVEN_PROJECTBASEDIR
175+
fi
176+
177+
##########################################################################################
178+
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
179+
# This allows using the maven wrapper in projects that prohibit checking in binary data.
180+
##########################################################################################
181+
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
182+
if [ "$MVNW_VERBOSE" = true ]; then
183+
echo "Found .mvn/wrapper/maven-wrapper.jar"
184+
fi
185+
else
186+
if [ "$MVNW_VERBOSE" = true ]; then
187+
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
188+
fi
189+
if [ -n "$MVNW_REPOURL" ]; then
190+
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
191+
else
192+
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
193+
fi
194+
while IFS="=" read key value; do
195+
case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;;
196+
esac
197+
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
198+
if [ "$MVNW_VERBOSE" = true ]; then
199+
echo "Downloading from: $wrapperUrl"
200+
fi
201+
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
202+
if $cygwin; then
203+
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
204+
fi
205+
206+
if command -v wget > /dev/null; then
207+
QUIET="--quiet"
208+
if [ "$MVNW_VERBOSE" = true ]; then
209+
echo "Found wget ... using wget"
210+
QUIET=""
211+
fi
212+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
213+
wget $QUIET "$wrapperUrl" -O "$wrapperJarPath"
214+
else
215+
wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath"
216+
fi
217+
[ $? -eq 0 ] || rm -f "$wrapperJarPath"
218+
elif command -v curl > /dev/null; then
219+
QUIET="--silent"
220+
if [ "$MVNW_VERBOSE" = true ]; then
221+
echo "Found curl ... using curl"
222+
QUIET=""
223+
fi
224+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
225+
curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L
226+
else
227+
curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L
228+
fi
229+
[ $? -eq 0 ] || rm -f "$wrapperJarPath"
230+
else
231+
if [ "$MVNW_VERBOSE" = true ]; then
232+
echo "Falling back to using Java to download"
233+
fi
234+
javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
235+
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class"
236+
# For Cygwin, switch paths to Windows format before running javac
237+
if $cygwin; then
238+
javaSource=`cygpath --path --windows "$javaSource"`
239+
javaClass=`cygpath --path --windows "$javaClass"`
240+
fi
241+
if [ -e "$javaSource" ]; then
242+
if [ ! -e "$javaClass" ]; then
243+
if [ "$MVNW_VERBOSE" = true ]; then
244+
echo " - Compiling MavenWrapperDownloader.java ..."
245+
fi
246+
# Compiling the Java class
247+
("$JAVA_HOME/bin/javac" "$javaSource")
248+
fi
249+
if [ -e "$javaClass" ]; then
250+
# Running the downloader
251+
if [ "$MVNW_VERBOSE" = true ]; then
252+
echo " - Running MavenWrapperDownloader.java ..."
253+
fi
254+
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
255+
fi
256+
fi
257+
fi
258+
fi
259+
##########################################################################################
260+
# End of extension
261+
##########################################################################################
262+
263+
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
264+
265+
# For Cygwin, switch paths to Windows format before running java
266+
if $cygwin; then
267+
[ -n "$JAVA_HOME" ] &&
268+
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
269+
[ -n "$CLASSPATH" ] &&
270+
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
271+
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
272+
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
273+
fi
274+
275+
# Provide a "standardized" way to retrieve the CLI args that will
276+
# work with both Windows and non-Windows executions.
277+
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
278+
export MAVEN_CMD_LINE_ARGS
279+
280+
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281+
282+
exec "$JAVACMD" \
283+
$MAVEN_OPTS \
284+
$MAVEN_DEBUG_OPTS \
285+
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
286+
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
287+
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

0 commit comments

Comments
 (0)