zoukankan      html  css  js  c++  java
  • 实现项目本地,测试,生产3套环境

    我们做开发的,大点的公司来说编译和发布这些都不会由我们来做,小点的公司的话应该是开发一手端了。但是如何实现项目的本地,测试,生产3套环境的不同配置的搭建,在彼此编译发布的时候都不会受到那些配置文件的影响,我觉得还是很有必要了解一下的。前几天请教了下公司的BM人员,这里做个整理。


    首先说一下具体的编译和发布,这些也是大致的了解下就OK了。

    1,编译的工具有很多,比如说ANT,maven,quickbulid等等,我玩的j2e,所以一般的编译都是打成一个ear包,然后丢到服务器上就OK。ear包里面包含一个war包和一些负载均衡的配置文件,不管是WebSphere还是weblogic都一样的。实际上的编译可以控制到增量编译和全量编译,增量编译就是只编译部分,全量编译就是全部编译,但是这个在实际编译过程中不怎么用到,一般都是全部编译,做多就是编译完以后解压出来把一些文件换进去这就实现了所谓的增量编译。

    2,发布,要是服务器有类似于dmgr这种控制台的话就在页面上点点就OK了,如果是weblogic这种的话就跑下shell脚本就OK了,记得一般在发布之前先停下服务器或者服务节点,发布完成之后来拉服务起来,这个不多说了。


    现在的重点就是如何实现部分代码更新和全部代码更新,通常来说就是增量发布和全量发布。


    一般的我们在开发的过程中,SVN上都会建立3个分支,一个是开发分支,一个是测试环境分支,一个是生成环境分支。然后BM会给我们写一个bat文件让我们在这3个分支上互相搬我们的代码,然后编译的时候就全量编译就可以了。如果我们先实现一部分代码更新到测试环境,或者我们想实现所有的代码更新到生产环境,那么我只需要列出代码清单然后运行相关的bat文件就OK了。部分更新往往是一些具体的文件名,全部更新往往是自己项目的所有文件夹。


    通过上面的操作,这里会产生一个问题,就是说测试环境和生产环境的数据库肯定不是同一个,要是我们这样子搬代码的话,不是就是同一套配置文件了么?这样子肯定是不行的。我之前做的项目下有一个etc文件下,下面放着多套配置,在用quickbuild等打包工具打包的时候选择编译的环境就可以找到相关的配置文件给我们编译进去,但是现在我玩的项目下就一套配置文件,也就是本地的配置文件,因为生产上的这些配置文件开发一般是没有权限的,否则大家都乱改很容易出问题,那怎么办才能在3个分支下搬代码的时候实现不同的配置呢?就是在生产环境的分支下在建立一个文件夹,比如说runtime文件夹,里面用来装生产上的配置文件,前面我们搬代码都是将代码和配置文件放在我们普通的文件夹下,不会冲掉runtime文件夹下的内容,所以当我们编译的时候,一般跑的是shell脚本,比如说createLinkin.sh,这些编译和发布的脚本都是BM给我写好的,在编译的过程中会将runtime文件夹下的内容换到我们的项目里面,这样子就实现了测试环境和生产环境2套不同的配置了。
  • 相关阅读:
    WSGI,uwsgi,uWSGI
    彻底关闭win10自动更新
    利用python实现单向链表
    Maven的工程类型有哪些
    Maven仓库是什么
    什么是Maven
    Shiro 的优点
    比较 SpringSecurity 和 Shiro
    shiro有哪些组件
    接口绑定有几种实现方式,分别是怎么实现的
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233014.html
Copyright © 2011-2022 走看看