buildAndRestart.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. # 源码存放根目录
  3. source_dir=/java_projects/source
  4. # 父工程目录
  5. parent_dir=$source_dir/mldong
  6. # 需要打包的项目名称
  7. project_name=mldong-admin
  8. # 项目部署目录
  9. project_dir=/java_projects/$project_name
  10. # 备份目录
  11. backup_dir=/backup/$project_name
  12. # git仓库地址(使用ssh方式的,需要去配置部署公钥)
  13. git_url=git@gitee.com:mldong/mldong.git
  14. if [ -f "$project_dir/$project_name.jar" ]; then
  15. echo "备份旧包"
  16. mkdir -p $backup_dir
  17. cp $project_dir/$project_name.jar $backup_dir/`date +"%Y%m%d%H%M%S"`.jar
  18. fi
  19. if [ -d "$source_dir" ]; then
  20. echo "源码存放根目录${source_dir}已存在"
  21. else
  22. echo "源码存放根目录不存在,创建${source_dir}"
  23. cp -p $source_dir
  24. fi
  25. if [ -d "$parent_dir" ]; then
  26. echo "源码已存在,git pull"
  27. cd $parent_dir
  28. git pull
  29. else
  30. echo "源码不存在,git clone"
  31. git clone $git_url $parent_dir
  32. fi
  33. git_version=$(git rev-parse HEAD)
  34. echo "当前版本号:${git_version}"
  35. # 进入项目源码目录
  36. cd $parent_dir
  37. # 打包
  38. mvn clean package -B -Dmaven.test.skip=true
  39. # 这里需要判断打包是否成功
  40. if [ $? -ne 0 ]; then
  41. echo "打包失败"
  42. else
  43. # 复制新包到部署目录
  44. cp $parent_dir/$project_name/target/$project_name.jar $project_dir/$project_name.jar
  45. # 进入部署项目
  46. cd $project_dir
  47. # 重启服务
  48. bash $project_name.sh
  49. fi