现在大家都流行用微服务,所以需要创建新项目的频率也越来越高。在此分享一段基于模板项目生成新项目的脚本。原理很简单,关键词替换,所以新建服务名尽量使用辨识度高的
模板项目:templatev1-service
代码语言:javascript复制#!/bin/sh
if [ ! -n "$1" ] ;then
echo "请输入项目名"
exit 0
fi
MOUDLE_NAME=$1
PROJECT_NAME="$1-service"
echo "PROJECT_NAME : $PROJECT_NAME"
NEW_BASE_DIR=../$PROJECT_NAME
if [ -d "$$EW_BASE_DIR" ] ;then
echo "项目$PROJECT_NAME 已存在"
exit 0
fi
mkdir -p $NEW_BASE_DIR
doCopy() {
for file in $1/*; do
if [ -d "$file" ]; then
if [[ "$file" =~ "target" ]]; then
continue
fi
dir=${file:2}
dir=$NEW_BASE_DIR/${dir//templatev1/$MOUDLE_NAME}
mkdir -p $dir
echo "mkdir $dir ok!!"
doCopy $file
elif [ -f $file ]; then
if [[ "$file" =~ "cloneproject.sh" ]]; then
continue
fi
newfile=${file//templatev1/$MOUDLE_NAME}
newfile=$NEW_BASE_DIR${newfile:1}
cp $file $newfile
echo "copy $newfile OK."
fi
done
}
doCopy .
cd ../$PROJECT_NAME
REPLACE_COMMOND="find $NEW_BASE_DIR -name '*.*' | xargs perl -pi -e 's|templatev1|$MOUDLE_NAME|g'"
sh -c "$REPLACE_COMMOND"
echo ">>创建 $PROJECT_NAME 完成"
用法:
代码语言:javascript复制./cloneProject.sh user
将生成新的项目user-service
推荐:在线生成项目