zoukankan      html  css  js  c++  java
  • maven实战笔记 maven实战(四)—— 基于Maven的持续集成实践

    1.集成命令

    • 不要忘记clean:clean保证上一次构建的输出不会影响本次构建
    • 使用deploy而不是install:构建的SNAPSHOP输出自动部署到私有maven仓库供他人使用
    • 使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多
    • 使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。
    • 使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库
    • 使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

    综上,持续集成服务器上的集成命令应该为 mvn clean deploy -B -e -U -Dmaven.repo.local=xxx 。

    2.分阶段构建

      将构建分为两个部分,第一部分包括了编译和单元测试等能够快速结束的任务,第二个部分包括集成测试等耗时较长的任务,只有第一部分成功完成后,才触发第二部分集成。

      可以借助 Maven Surefire Plugin ,统一单元测试命名为**UT,统一集成测试命名为**IT,然后配置Maven Surefire Plugin默认只运行单元测试,然后再编写一个名为integrationTest的Profile,在其中配置Maven Surefire Plugin运行集成测试。然后再以此为基础分阶段构建项目,第一个构建为 mvn clean install -B -e -U ,第二个构建任务为 mvn clean deploy -B -e -U -PintegrationTest 。前一个构建成功后再触发第二个构建,然后才部署至Maven仓库。

  • 相关阅读:
    Redis未授权访问写Webshell和公私钥认证获取root权限
    Zabbix 2.2系列注入+getsehll
    XSS中的同源策略和跨域问题
    权限维持-wmi事件
    burp插件之xssValidator
    MySQL模拟Oralce闪回操作
    误删除innodb ibdata数据文件
    pt-heartbeat使用实践
    MySQL slave状态之Seconds_Behind_Master【转】
    如何快速REPAIR TABLE
  • 原文地址:https://www.cnblogs.com/zhu-tingting/p/7281533.html
Copyright © 2011-2022 走看看