Skip to main content

手动 deploy

script

# 需安装Java运行环境,Maven,且相关文件在PATH下
# 指定文件路径(不可使用本地仓库,文件路径需与本地仓库保持一致,即依赖坐标可用),发布仓库id, 发布仓库url
LOCAL_REPO=/Users/tsy/Deploy
REPOSITORY_ID_SNAPSHOT=surpath-snapshots
REPOSITORY_URL_SNAPSHOT=http://172.16.0.109:8081/repository/maven-snapshots/
REPOSITORY_ID_RELEASE=surpath-releases
REPOSITORY_URL_RELEASE=http://mvn.surpath-inc.net/repository/maven-releases/

# 获取发布类型(忽略大小写),groupId,artifactId,version,仓库
TYPE=$1
GROUP_ID=$2
ARTIFACT_ID=$3
VERSION=$4
REPO=$5

if [ ! -n "$TYPE" ]; then
echo "You must specify the type"
exit 1
fi

# 类型转小写
TYPE=$(echo $TYPE | tr '[A-Z]' '[a-z]')

if [ ! -n "$GROUP_ID" ]; then
echo "You must specify the group id"
exit 1
fi

if [ ! -n "$ARTIFACT_ID" ]; then
echo "You must specify the artifact id"
exit 1
fi

if [ ! -n "$VERSION" ]; then
echo "You must specify the version"
exit 1
fi

if [[ -n "$REPO" ]] && [[ $REPO == "release" ]]; then
REPOSITORY_ID=$REPOSITORY_ID_RELEASE
REPOSITORY_URL=$REPOSITORY_URL_RELEASE
else
REPOSITORY_ID=$REPOSITORY_ID_SNAPSHOT
REPOSITORY_URL=$REPOSITORY_URL_SNAPSHOT
fi

# 处理路径
OLD_IFS="$IFS"
IFS="."
arr=($GROUP_ID)
IFS="$OLD_IFS"
WORK_DIR=$LOCAL_REPO
for folder in ${arr[@]}
do
WORK_DIR=$WORK_DIR/$folder
done

WORK_DIR=$WORK_DIR/$ARTIFACT_ID
WORK_DIR=$WORK_DIR/$VERSION

FILE_NAME=$ARTIFACT_ID-$VERSION

COMMAND="mvn deploy:deploy-file"
COMMAND=$COMMAND" -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID -Dversion=$VERSION"

if [ $TYPE == "jar" ]; then
COMMAND=$COMMAND" -Dfile=$WORK_DIR/$FILE_NAME.jar"
COMMAND=$COMMAND" -DpomFile=$WORK_DIR/$FILE_NAME.pom"
COMMAND=$COMMAND" -Dsources=$WORK_DIR/$FILE_NAME-sources.jar"
else
COMMAND=$COMMAND" -Dfile=$WORK_DIR/$FILE_NAME.pom"
fi

COMMAND=$COMMAND" -Dpackaging=$TYPE"
COMMAND=$COMMAND" -DgeneratePom=false -DrepositoryId=$REPOSITORY_ID -Durl=$REPOSITORY_URL"

echo ">>> Start to deploy: $ARTIFACT_ID-$VERSION.$TYPE to repository: $REPOSITORY_ID $REPOSITORY_URL"
echo ">>> Execute $COMMAND"

$COMMAND