首页 > 系统相关 >基于git的tomcat站点打增量包shell脚本

基于git的tomcat站点打增量包shell脚本

时间:2022-10-11 10:46:53浏览次数:49  
标签:files src git tomcat ss shell main dir

#!/bin/sh

#获取git中两版本间发生变动的文件列表(区间 前$1开 后$2闭)
git_files=($(git log --pretty=format:"" --name-only "$1..$2"))

#待打包文件列表(空格分割)
res_files=""

# 重复文件列表
repeat_files=()
ignore_files=(shopxx.xml shopxx.properties pom.xml)

# tomcat部署的项目路径
web_dir="/home/wcq/projects/gj/src/main/webapp"
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)

  #过滤掉不想打包的文件
  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 >$work_dir"/"git-package_.tmp
    while read line; do
      ss=$ss" "$line
    done <$work_dir"/"git-package_.tmp
    rm -rf $work_dir"/"git-package_.tmp

  # 其他不处理
  else
    ss=""
  fi

  # 将待处理的文件加入列表
  if [[ $ss ]]; then

    res_files=$res_files" "$ss
  fi
done

#文件打包
package_name="update_$(date +%Y%m%d_%H%M%S).zip"
#tar -zcvf $package_name".tar.gz" $res_files
zip -q $package_name $res_files
mv $package_name $work_dir/$package_name

cd $work_dir
echo "patch success: $package_name"

标签:files,src,git,tomcat,ss,shell,main,dir
From: https://www.cnblogs.com/qfsz168/p/16778425.html

相关文章

  • vscode如何链接git远程仓库gitee或github
    vscode如何链接git远程仓库gitee或githubhttps://blog.csdn.net/G_C_H/article/details/1206732271.在GitHub上创建新的仓库2.生成SSH密钥开启GitBash命令行中输......
  • 高效的代码迁移方案(使用 git)
    1.把ics2021做个备份,存为ics2021_backup2.来到ics2021/PA,把PA1-2的所有commit压缩成一个commit,使用gitrebase-i<after-this-commit>命令来源:https://sta......
  • 一文了解Github Markdown全部语法
    今天在看Win32文档参与编写的说明时,看到里面提及OurdocumentationiswritteninMarkdown,alightweighttextstylesyntax.Ifyou'renotfamiliarwithMarkdown,......
  • 如何以root管理员的身份唤起powershell?
    使用运行窗口打开带管理员权限的PowerShell1.按下组合键Windows+R以打开运行窗口。输入powershell然后按下回车键。2.WindowsPowerShell会以当前用户的权限去执行。3.......
  • Git项目管理快速入门
    Git是什么Git的理解:Git是目前世界上最先进的分布式版本控制系统(没有之一),用于敏捷高效地处理任何或小或大的项目。简单理解就是代码管理工具。使用Git一般处于以下3......
  • Github Pages 和 Hexo 搭建自己的博客
    title:GithubPages和Hexo搭建自己的博客excerpt:hexoblog来了~tags:[hexo,blog,githubpages]categories:[学习,git][学习,hexo]index_img:https://......
  • [IOS]如何结合XCODE使用git以及异常处理
    1.控制台cd到项目目录下,输入命令:gitinit 2.在gitserver创建xxx/project_name.git,输入命令:git--bareinit 3.本地控制台:gitadd.gitcommit-m"firstCommit"git......
  • Tomcat容器、JSP和Servlet
    目录​​JSP​​​​Tomcat、JSP和Servlet ​​JSPJSP全名为JavaServerPages,其根本是一个简化的Servlet设计。JSP技术有点类似ASP技术,它是在传统的HTML网页中插入Java程......
  • github分支
    title:Github分支excerpt:转载自TsumugiWenders大佬~tags:[git,github,gitee]categories:[学习,git]index_img:https://picture-store-repository.oss-cn-ha......
  • git入门
    title:git入门excerpt:转载自TsumugiWenders大佬~tags:[git,github,gitee]categories:[学习,git]index_img:https://picture-store-repository.oss-cn-hangz......