diff options
Diffstat (limited to 'build/mvn')
-rwxr-xr-x | build/mvn | 43 |
1 files changed, 22 insertions, 21 deletions
@@ -67,17 +67,26 @@ install_app() { fi } -# Install maven under the build/ folder +# Determine the Maven version from the root pom.xml file and +# install maven under the build/ folder if needed. install_mvn() { - local MVN_VERSION="3.3.9" - local APACHE_MIRROR=${APACHE_MIRROR:-'https://www.apache.org/dyn/closer.lua?action=download&filename='} + local MVN_VERSION=`grep "<maven.version>" "${_DIR}/../pom.xml" | head -n1 | awk -F '[<>]' '{print $3}'` + MVN_BIN="$(command -v mvn)" + if [ "$MVN_BIN" ]; then + local MVN_DETECTED_VERSION="$(mvn --version | head -n1 | awk '{print $3}')" + fi + # See simple version normalization: http://stackoverflow.com/questions/16989598/bash-comparing-version-numbers + function version { echo "$@" | awk -F. '{ printf("%03d%03d%03d\n", $1,$2,$3); }'; } + if [ $(version $MVN_DETECTED_VERSION) -lt $(version $MVN_VERSION) ]; then + local APACHE_MIRROR=${APACHE_MIRROR:-'https://www.apache.org/dyn/closer.lua?action=download&filename='} - install_app \ - "${APACHE_MIRROR}/maven/maven-3/${MVN_VERSION}/binaries" \ - "apache-maven-${MVN_VERSION}-bin.tar.gz" \ - "apache-maven-${MVN_VERSION}/bin/mvn" + install_app \ + "${APACHE_MIRROR}/maven/maven-3/${MVN_VERSION}/binaries" \ + "apache-maven-${MVN_VERSION}-bin.tar.gz" \ + "apache-maven-${MVN_VERSION}/bin/mvn" - MVN_BIN="${_DIR}/apache-maven-${MVN_VERSION}/bin/mvn" + MVN_BIN="${_DIR}/apache-maven-${MVN_VERSION}/bin/mvn" + fi } # Install zinc under the build/ folder @@ -98,8 +107,7 @@ install_zinc() { # the build/ folder install_scala() { # determine the Scala version used in Spark - local scala_version=`grep "scala.version" "${_DIR}/../pom.xml" | \ - head -1 | cut -f2 -d'>' | cut -f1 -d'<'` + local scala_version=`grep "scala.version" "${_DIR}/../pom.xml" | head -n1 | awk -F '[<>]' '{print $3}'` local scala_bin="${_DIR}/scala-${scala_version}/bin/scala" local TYPESAFE_MIRROR=${TYPESAFE_MIRROR:-https://downloads.typesafe.com} @@ -116,23 +124,16 @@ install_scala() { # the environment ZINC_PORT=${ZINC_PORT:-"3030"} -# Check for the `--force` flag dictating that `mvn` should be downloaded -# regardless of whether the system already has a `mvn` install +# Remove `--force` for backward compatibility. if [ "$1" == "--force" ]; then - FORCE_MVN=1 + echo "WARNING: '--force' is deprecated and ignored." shift fi -# Install Maven if necessary -MVN_BIN="$(command -v mvn)" - -if [ ! "$MVN_BIN" -o -n "$FORCE_MVN" ]; then - install_mvn -fi - -# Install the proper version of Scala and Zinc for the build +# Install the proper version of Scala, Zinc and Maven for the build install_zinc install_scala +install_mvn # Reset the current working directory cd "${_CALLING_DIR}" |