zoukankan      html  css  js  c++  java
  • 多模块应用自动化部署

    多模块应用自动化部署脚本(一个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)模块之间最好界限分明,否则会有不必要的依赖错误;

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

  • 相关阅读:
    委托和事件
    Entity Framework应用:导航属性
    Entity Framework应用:根据实体的EntityState状态实现增删改查
    Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查
    Entity Framework应用:EntityFramework DataBase First模式
    dapper支持操作函数和事物
    单元测试
    IOC容器:Unity
    MVC教程九:异常过滤器
    MVC教程八:缓存过滤器
  • 原文地址:https://www.cnblogs.com/youcong/p/10703390.html
Copyright © 2011-2022 走看看