linux-tutorial/codes/linux/soft/lib/maven.sh

76 lines
1.8 KiB
Bash
Raw Normal View History

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
}