多模块应用自动化部署

多模块应用自动化部署脚本(一个maven项目可以是单体的,也可以有很多子模块,以我之前博客为例,我的博客有这么几个模块,blog-common、blog-service、blog-web、blog-generator等,这种模块打包的时候,全部都不能缺,缺一不可,否则就会报错,也就是构建失败):

复制代码
time=$(date "+%Y-%m-%d %H:%M:%S")



git clone https://code.aliyun.com/test/bfi.git



cd /home/project/bfi/bfi-saas/bfi-web/src



rm -r ./test/



cd /home/project/bfi/bfi-saas



mvn clean package



if [ $? -ne 0 ]; then



    echo "自动化部署bfi项目失败,当前日期为:"$time >> /home/project/bfi_deploy.log



    echo '部署失败,请登录服务器查看' | mail -s "bfi部署" test@163.com



else



    cp -r /home/project/bfi/bfi-saas/bfi-web/target/bfi-web.war /home/project/tomcat8/webapps/



    /home/project/tomcat8/bin/shutdown.sh



    /home/project/tomcat8/bin/startup.sh



    rm -r /home/project/bfi



    echo "自动化部署bfi项目成功,当前日期为:"$time >> /home/project/bfi_deploy.log

    

    echo '部署成功' | mail -s "bfi部署" test@163.com



fi
复制代码

注意:

(1)maven打包通常也会执行mvn test,也就是会将src/test/java下面的单元测试代码全部执行一遍,如果你的单元测试其中某个方法有问题也会导致构建失败。上述我的其中一步操作rm -r ./test/主要就是将单元测试代码删除防止影响构建,实际上是不应该这样做的,但是由于某种原因我必须要这样做(不建议开发者将单元测试删除后部署,单测也是一种上线部署的保障;

(2)模块之间最好界限分明,否则会有不必要的依赖错误;

关于脚本中的邮件发送,可以参考我的这篇博客单体应用自动化部署

posted @   挑战者V  阅读(485)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示