Maven项目增量打包部署 基于Git Bash (前后端一体化项目)
1.在Git项目的根目录,鼠标右键 Git Bash Here,打开Git Bash窗口2.执行 ./git-package_.sh “2020-11-20 08:00:00”, 日期为上次打包文件的日期3. git-package_.sh 脚本如下(需要根据自身的 Tomcat 项目部署路径修改变量web_dir 注意路径最后不要有 “/” ):#!/bin/bash#首先获取待打包文件git
·
1.在Git项目的根目录,鼠标右键 Git Bash Here,打开Git Bash窗口
2.执行 ./git-package_.sh “2020-11-20 08:00:00” , 日期为上次打包文件的日期
3. git-package_.sh 脚本如下(需要根据自身的 Tomcat 项目部署路径修改变量 web_dir 注意路径最后不要有 “/” ):
#!/bin/bash
#首先获取待打包文件 git log --pretty=format:"" -$1 --name-only
git_files=(`git log --pretty=format:"" --name-only --since="$1" `);
res_files="";
repeat_files=();
ignore_files=( shopxx.xml shopxx.properties pom.xml );
# tomcat部署的项目路径
web_dir="/c/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/shopxx-b2b2c"
work_dir=$PWD
cd $web_dir
#处理文件,找到需要打包的文件
for ss in ${git_files[@]};
do
#去掉重复的文件: 采取如下遍历方案
for ss_repeat in ${repeat_files[@]};
do
if [[ $ss_repeat == $ss ]] ; then
echo "重复:"$ss;
ss="";
break;
fi
done;
repeat_files=(${repeat_files[@]} $ss);
#过滤掉不想打包的文件
#elif [[ $ss == */hibernate.properties ]] ;then ss="";
#过滤掉不想打包的文件
for ss_ignore in ${ignore_files[@]};
do
if [[ $ss == */$ss_ignore ]] ; then
#echo "排除:"$ss;
ss="";
break;
fi
done;
#开始处理文件路径
# 页面文件(jsp、ftl、js、css、图片等等)
if [[ $ss == src/main/webapp/* ]] ;then
ss=`echo $ss | sed 's/^src\/main\/webapp\///g'`;
# 系统配置文件
elif [[ $ss == src/main/resources/* ]] ;then
ss=`echo $ss | sed 's/^src\/main\/resources/WEB-INF\/classes/g'`;
# 后端Java文件
elif [[ $ss == src/main/java/* ]] ;then
ss_temp=${ss##*/};
ss_temp=${ss_temp/".java"/"*.class"};
ss_dir=`echo $ss | sed 's/^src\/main\/java\///g'`;
ss_dir=${ss_dir%/*}
ss="";
find WEB-INF/classes/$ss_dir -name $ss_temp > git-package_.tmp;
while read line;
do
ss=$ss" "$line;
done < git-package_.tmp;
else
ss="";
fi
res_files=$res_files" "$ss;
done;
#文件打包
package_name="update_`date +%Y%m%d_%H%M%S`.tar.gz";
tar -zcvf $package_name $res_files;
# zip $package_name $res_files;
mv $web_dir"/"$package_name $work_dir/$package_name
cd $work_dir
echo $package_name;
4.Tomcat项目部署路径:
更多推荐
所有评论(0)