From d93568851b7bbee288ab0506dfa056740d1f74db Mon Sep 17 00:00:00 2001 From: Jean-Christophe Gay Date: Sat, 15 Jun 2019 10:51:52 +0200 Subject: [PATCH] Upgrade to Maven 3.6.1 mvn -N io.takari:maven:0.7.6:wrapper -Dmaven=3.6.1 --- .mvn/wrapper/MavenWrapperDownloader.java | 117 ++++++++ .mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 50710 bytes .mvn/wrapper/maven-wrapper.properties | 3 +- mvnw | 91 ++++++- mvnw.cmd | 325 +++++++++++++---------- 5 files changed, 389 insertions(+), 147 deletions(-) create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java mode change 100755 => 100644 .mvn/wrapper/maven-wrapper.jar mode change 100755 => 100644 .mvn/wrapper/maven-wrapper.properties mode change 100755 => 100644 mvnw.cmd diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar old mode 100755 new mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0d5e649888a4843c1520054d9672f80c62ebbb48 GIT binary patch delta 13021 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

3C8sXH2$Ge-<(>~l@{=T(Dy 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 IOZ{K^e?+OdApigX delta 10069 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 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties old mode 100755 new mode 100644 index 56bb016..fa87ad7 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1 +1,2 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip \ No newline at end of file +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/mvnw b/mvnw index 5bf251c..d2f0ea3 100755 --- a/mvnw +++ b/mvnw @@ -108,13 +108,12 @@ if $cygwin ; then CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi -# For Migwn, ensure paths are in UNIX format before anything is touched +# For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then @@ -200,8 +199,89 @@ if [ -z "$BASE_DIR" ]; then exit 1; fi +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java @@ -216,6 +296,11 @@ if $cygwin; then MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ diff --git a/mvnw.cmd b/mvnw.cmd old mode 100755 new mode 100644 index 48c810e..b26ab24 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -1,143 +1,182 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven2 Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE%