Repository: maven Updated Branches: refs/heads/project-basedir [created] 4b32ef2cb
.mvn/ for project specific jvm options and maven parameters Signed-off-by: Igor Fedorenko <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/4b32ef2c Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/4b32ef2c Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/4b32ef2c Branch: refs/heads/project-basedir Commit: 4b32ef2cb84251270b334dc68ad2a0778867182d Parents: 786285f Author: Igor Fedorenko <[email protected]> Authored: Mon Jan 26 14:22:05 2015 -0500 Committer: Igor Fedorenko <[email protected]> Committed: Mon Jan 26 14:22:05 2015 -0500 ---------------------------------------------------------------------- apache-maven/src/bin/mvn | 9 ++++-- apache-maven/src/bin/mvn-common.sh | 48 +++++++++++++++++++++++++++++ apache-maven/src/bin/mvnDebug | 9 ++++-- apache-maven/src/bin/mvnyjp | 22 ++++++------- apache-maven/src/main/assembly/bin.xml | 1 + 5 files changed, 74 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/4b32ef2c/apache-maven/src/bin/mvn ---------------------------------------------------------------------- diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn index 1ed3024..70fa2f9 100755 --- a/apache-maven/src/bin/mvn +++ b/apache-maven/src/bin/mvn @@ -189,9 +189,14 @@ if $cygwin; then CLASSPATH=`cygpath --path --windows "$CLASSPATH"` fi +. "$M2_HOME/bin/mvn-common.sh" +export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config") +MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + # Provide a "standardized" way to retrieve the CLI args that will # work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$@" +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" export MAVEN_CMD_LINE_ARGS exec "$JAVACMD" \ @@ -199,4 +204,4 @@ exec "$JAVACMD" \ -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ "-Dmaven.home=${M2_HOME}" \ - ${CLASSWORLDS_LAUNCHER} "$@" + ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@" http://git-wip-us.apache.org/repos/asf/maven/blob/4b32ef2c/apache-maven/src/bin/mvn-common.sh ---------------------------------------------------------------------- diff --git a/apache-maven/src/bin/mvn-common.sh b/apache-maven/src/bin/mvn-common.sh new file mode 100755 index 0000000..adac638 --- /dev/null +++ b/apache-maven/src/bin/mvn-common.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +# ---------------------------------------------------------------------------- + +# TODO ideally, this should contain all logic common to mvn* shell scripts + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +function find_maven_basedir { + local basedir=$(pwd) + local wdir=$(pwd) + while [ "$wdir" != '/' ]; do + wdir=$(cd $wdir/..; pwd) + if [[ -d "$wdir"/.mvn ]]; then + basedir=$wdir + break + fi + done + echo "${basedir}" +} + +# concatenates all lines of a file +function concat { + local file=$1 + local result= + if [ -f "$file" ]; then + while read -r line; do + result="$result $line" + done < "$file" + fi + echo "$result" +} http://git-wip-us.apache.org/repos/asf/maven/blob/4b32ef2c/apache-maven/src/bin/mvnDebug ---------------------------------------------------------------------- diff --git a/apache-maven/src/bin/mvnDebug b/apache-maven/src/bin/mvnDebug index 291f81f..14dc4b5 100755 --- a/apache-maven/src/bin/mvnDebug +++ b/apache-maven/src/bin/mvnDebug @@ -193,9 +193,14 @@ if $cygwin; then CLASSPATH=`cygpath --path --windows "$CLASSPATH"` fi +. "$M2_HOME/bin/mvn-common.sh" +export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config") +MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + # Provide a "standardized" way to retrieve the CLI args that will # work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$@" +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" export MAVEN_CMD_LINE_ARGS exec "$JAVACMD" \ @@ -204,4 +209,4 @@ exec "$JAVACMD" \ -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ "-Dmaven.home=${M2_HOME}" \ - ${CLASSWORLDS_LAUNCHER} "$@" + ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@" http://git-wip-us.apache.org/repos/asf/maven/blob/4b32ef2c/apache-maven/src/bin/mvnyjp ---------------------------------------------------------------------- diff --git a/apache-maven/src/bin/mvnyjp b/apache-maven/src/bin/mvnyjp index faf3412..d64979a 100755 --- a/apache-maven/src/bin/mvnyjp +++ b/apache-maven/src/bin/mvnyjp @@ -34,14 +34,6 @@ # MAVEN_SKIP_RC - flag to disable loading of mavenrc files # ---------------------------------------------------------------------------- -QUOTED_ARGS="" -while [ "$1" != "" ] ; do - - QUOTED_ARGS="$QUOTED_ARGS \"$1\"" - shift - -done - if [ -z "$MAVEN_SKIP_RC" ] ; then if [ -f /etc/mavenrc ] ; then @@ -204,11 +196,19 @@ fi MAVEN_OPTS="-agentpath:$YJPLIB=onexit=snapshot,onexit=memory,tracing,onlylocal $MAVEN_OPTS" +. "$M2_HOME/bin/mvn-common.sh" +export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)} +MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config") +MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# 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 + exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \ "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ "-Dmaven.home=${M2_HOME}" \ - ${CLASSWORLDS_LAUNCHER} $QUOTED_ARGS - - + ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@" http://git-wip-us.apache.org/repos/asf/maven/blob/4b32ef2c/apache-maven/src/main/assembly/bin.xml ---------------------------------------------------------------------- diff --git a/apache-maven/src/main/assembly/bin.xml b/apache-maven/src/main/assembly/bin.xml index b2aa900..6b862f8 100644 --- a/apache-maven/src/main/assembly/bin.xml +++ b/apache-maven/src/main/assembly/bin.xml @@ -74,6 +74,7 @@ under the License. <outputDirectory>bin</outputDirectory> <includes> <include>m2</include> + <include>mvn-common.sh</include> <include>mvn</include> <include>mvnDebug</include> <!-- This is so that CI systems can periodically run the profiler -->
