github.com/emc-advanced-dev/unik@v0.0.0-20190717152701-a58d3e8e33b7/docs/examples/example_osv_java_servlet/mvnw (about)

     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             #
    58             # Look for the Apple JDKs first to preserve the existing behaviour, and then look
    59             # for the new JDKs provided by Oracle.
    60             # 
    61             if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
    62               #
    63               # Apple JDKs
    64               #
    65               export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
    66             fi
    67             
    68             if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
    69               #
    70               # Apple JDKs
    71               #
    72               export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
    73             fi
    74               
    75             if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
    76               #
    77               # Oracle JDKs
    78               #
    79               export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
    80             fi           
    81  
    82             if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
    83               #
    84               # Apple JDKs
    85               #
    86               export JAVA_HOME=`/usr/libexec/java_home`
    87             fi
    88             ;;
    89  esac
    90  
    91  if [ -z "$JAVA_HOME" ] ; then
    92    if [ -r /etc/gentoo-release ] ; then
    93      JAVA_HOME=`java-config --jre-home`
    94    fi
    95  fi
    96  
    97  if [ -z "$M2_HOME" ] ; then
    98    ## resolve links - $0 may be a link to maven's home
    99    PRG="$0"
   100  
   101    # need this for relative symlinks
   102    while [ -h "$PRG" ] ; do
   103      ls=`ls -ld "$PRG"`
   104      link=`expr "$ls" : '.*-> \(.*\)$'`
   105      if expr "$link" : '/.*' > /dev/null; then
   106        PRG="$link"
   107      else
   108        PRG="`dirname "$PRG"`/$link"
   109      fi
   110    done
   111  
   112    saveddir=`pwd`
   113  
   114    M2_HOME=`dirname "$PRG"`/..
   115  
   116    # make it fully qualified
   117    M2_HOME=`cd "$M2_HOME" && pwd`
   118  
   119    cd "$saveddir"
   120    # echo Using m2 at $M2_HOME
   121  fi
   122  
   123  # For Cygwin, ensure paths are in UNIX format before anything is touched
   124  if $cygwin ; then
   125    [ -n "$M2_HOME" ] &&
   126      M2_HOME=`cygpath --unix "$M2_HOME"`
   127    [ -n "$JAVA_HOME" ] &&
   128      JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
   129    [ -n "$CLASSPATH" ] &&
   130      CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
   131  fi
   132  
   133  # For Migwn, ensure paths are in UNIX format before anything is touched
   134  if $mingw ; then
   135    [ -n "$M2_HOME" ] &&
   136      M2_HOME="`(cd "$M2_HOME"; pwd)`"
   137    [ -n "$JAVA_HOME" ] &&
   138      JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
   139    # TODO classpath?
   140  fi
   141  
   142  if [ -z "$JAVA_HOME" ]; then
   143    javaExecutable="`which javac`"
   144    if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
   145      # readlink(1) is not available as standard on Solaris 10.
   146      readLink=`which readlink`
   147      if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
   148        if $darwin ; then
   149          javaHome="`dirname \"$javaExecutable\"`"
   150          javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
   151        else
   152          javaExecutable="`readlink -f \"$javaExecutable\"`"
   153        fi
   154        javaHome="`dirname \"$javaExecutable\"`"
   155        javaHome=`expr "$javaHome" : '\(.*\)/bin'`
   156        JAVA_HOME="$javaHome"
   157        export JAVA_HOME
   158      fi
   159    fi
   160  fi
   161  
   162  if [ -z "$JAVACMD" ] ; then
   163    if [ -n "$JAVA_HOME"  ] ; then
   164      if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
   165        # IBM's JDK on AIX uses strange locations for the executables
   166        JAVACMD="$JAVA_HOME/jre/sh/java"
   167      else
   168        JAVACMD="$JAVA_HOME/bin/java"
   169      fi
   170    else
   171      JAVACMD="`which java`"
   172    fi
   173  fi
   174  
   175  if [ ! -x "$JAVACMD" ] ; then
   176    echo "Error: JAVA_HOME is not defined correctly." >&2
   177    echo "  We cannot execute $JAVACMD" >&2
   178    exit 1
   179  fi
   180  
   181  if [ -z "$JAVA_HOME" ] ; then
   182    echo "Warning: JAVA_HOME environment variable is not set."
   183  fi
   184  
   185  CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
   186  
   187  # For Cygwin, switch paths to Windows format before running java
   188  if $cygwin; then
   189    [ -n "$M2_HOME" ] &&
   190      M2_HOME=`cygpath --path --windows "$M2_HOME"`
   191    [ -n "$JAVA_HOME" ] &&
   192      JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
   193    [ -n "$CLASSPATH" ] &&
   194      CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
   195  fi
   196  
   197  # traverses directory structure from process work directory to filesystem root
   198  # first directory with .mvn subdirectory is considered project base directory
   199  find_maven_basedir() {
   200    local basedir=$(pwd)
   201    local wdir=$(pwd)
   202    while [ "$wdir" != '/' ] ; do
   203      if [ -d "$wdir"/.mvn ] ; then
   204        basedir=$wdir
   205        break
   206      fi
   207      wdir=$(cd "$wdir/.."; pwd)
   208    done
   209    echo "${basedir}"
   210  }
   211  
   212  # concatenates all lines of a file
   213  concat_lines() {
   214    if [ -f "$1" ]; then
   215      echo "$(tr -s '\n' ' ' < "$1")"
   216    fi
   217  }
   218  
   219  export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
   220  MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
   221  
   222  # Provide a "standardized" way to retrieve the CLI args that will 
   223  # work with both Windows and non-Windows executions.
   224  MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
   225  export MAVEN_CMD_LINE_ARGS
   226  
   227  WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
   228  
   229  exec "$JAVACMD" \
   230    $MAVEN_OPTS \
   231    -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
   232    "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
   233    ${WRAPPER_LAUNCHER} $MAVEN_CMD_LINE_ARGS
   234