2020-02-02 17:56:28 +08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2020-03-10 22:54:15 +08:00
|
|
|
# -----------------------------------------------------------------------------------------------------
|
|
|
|
# maven operation utils
|
2020-02-02 17:56:28 +08:00
|
|
|
# @author Zhang Peng
|
2020-03-10 22:54:15 +08:00
|
|
|
# -----------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------ load libs
|
2020-02-02 17:56:28 +08:00
|
|
|
|
2020-02-12 22:46:17 +08:00
|
|
|
LINUX_SCRIPTS_LIB_DIR=`dirname ${BASH_SOURCE[0]}`
|
2020-02-02 17:56:28 +08:00
|
|
|
|
2020-02-12 22:46:17 +08:00
|
|
|
if [[ ! -x ${LINUX_SCRIPTS_LIB_DIR}/utils.sh ]]; then
|
2020-03-10 22:54:15 +08:00
|
|
|
echo "${LINUX_SCRIPTS_LIB_DIR}/utils.sh not exists!"
|
2020-02-12 22:46:17 +08:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
source ${LINUX_SCRIPTS_LIB_DIR}/utils.sh
|
|
|
|
|
2020-03-10 22:54:15 +08:00
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------ functions
|
|
|
|
|
|
|
|
# execute maven lifecycle operation
|
|
|
|
# @param $1: maven project path
|
|
|
|
# @param $2: maven lifecycle, eg. package、install、deploy
|
|
|
|
# @param $3: maven profile [optional]
|
2020-02-12 22:46:17 +08:00
|
|
|
mavenOperation() {
|
2020-02-02 17:56:28 +08:00
|
|
|
local source=$1
|
2020-02-12 22:46:17 +08:00
|
|
|
local lifecycle=$2
|
|
|
|
local profile=$3
|
|
|
|
|
|
|
|
mavenCheck ${source}
|
2020-03-10 22:54:15 +08:00
|
|
|
if [[ "${ENV_SUCCEED}" != "$?" ]]; then
|
|
|
|
return ${ENV_FAILED}
|
2020-02-02 17:56:28 +08:00
|
|
|
fi
|
|
|
|
|
2020-02-12 22:46:17 +08:00
|
|
|
if [[ ! "${lifecycle}" ]]; then
|
|
|
|
logError "please input maven lifecycle"
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_FAILED}
|
2020-02-12 22:46:17 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
local mvnCli="mvn clean ${lifecycle} -DskipTests=true -B -U"
|
|
|
|
|
|
|
|
if [[ ${profile} ]]; then
|
|
|
|
mvnCli="${mvnCli} -P${profile}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd ${source}
|
|
|
|
if [[ -f "${source}/settings.xml" ]]; then
|
|
|
|
mvnCli="${mvnCli} -s ${source}/settings.xml"
|
|
|
|
fi
|
|
|
|
|
|
|
|
callAndLog "${mvnCli}"
|
|
|
|
cd -
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_SUCCEED}
|
2020-02-02 17:56:28 +08:00
|
|
|
}
|
|
|
|
|
2020-03-10 22:54:15 +08:00
|
|
|
# check specified path is maven project or not
|
|
|
|
# @param $1: maven project path
|
2020-02-02 17:56:28 +08:00
|
|
|
mavenCheck() {
|
|
|
|
local source=$1
|
|
|
|
if [[ -d "${source}" ]]; then
|
|
|
|
cd ${source}
|
|
|
|
if [[ -f "${source}/pom.xml" ]]; then
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_YES}
|
2020-02-02 17:56:28 +08:00
|
|
|
else
|
2020-02-12 22:46:17 +08:00
|
|
|
logError "pom.xml is not exists"
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_NO}
|
2020-02-02 17:56:28 +08:00
|
|
|
fi
|
|
|
|
cd -
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_YES}
|
2020-02-02 17:56:28 +08:00
|
|
|
else
|
2020-02-12 22:46:17 +08:00
|
|
|
logError "please input valid maven project path"
|
2020-03-10 22:54:15 +08:00
|
|
|
return ${ENV_NO}
|
2020-02-02 17:56:28 +08:00
|
|
|
fi
|
|
|
|
}
|