00:00
那么我们在做持续集成的过程当中呢,有一个其实最核心的哈,就是我们这个项目怎么给它跑起来啊,只要他跑起来的话,我们是想测试也好,是想交付给。最终的用户也好啊,就都没问题了,那么我们开发过程当中呢。我们程序员哈,程序员提交我们的这个代码。那么我们肯定呢,都是去提交给我们的。诶,我们这么看啊,我们程序员呢,这是我们程序员啊,这是我们在自己的工作区里边呢去进行开发,那么其实每一个程序员呢,我们开发的呢,都是这个项目的局部,都不能够代表我们这个项目的,呃,全部啊,都只是这个局部,那么我们开发的新的代码呢,会提交到我们这个代码库里面,你甭管是SV也好,是这个github也好啊,它总归呢都是有一个代码库,那么我们都是把这个代码呢提交上来,当然对于SN叫提交,对于我们GI他叫做这个推送,然后呢,那么我们想把它跑起来,如果没有JS这样的这个工具哈,我们只能是手动去做,手动去做怎么去做呢?我们需要从代码库里边把它解出出来,得到所有的整个这个项目所有的源码,然后呢,手动的去打包,诶打成一个挖包,再部署到这个汤姆开的服务器上,整个这过程呢,你要看这个图的话呢,其实好像步骤挺简单的,没有啥没有啥复杂的这个步骤哈。
01:31
但是你想哈,这里边儿每一个活都得你自己去干,哎,每一个活呢,都得我们自己手动去做,那我们要是想频繁的进行集成,频繁的进行这个交付,那你这个就天天的就没别的事儿,就干这些事儿,就干这些操作了,检出打包部署,不停的检出打包部署,那这个事儿还是很很郁闷的是吧,也可能大家会想哈,提出这么个问题,诶,我这个项目在我本地可以跑啊。
02:01
啊,你像我eclipse里边run X run server是吧,或者说我使用ma的那个tomca的插件,我在我本地就可以跑呀,我为啥还非得费这么大劲,费这么大的劲部署到这么个tomcat上面呢。呃,这个时候大家想哈,你run as run server也好,是ma toca的插件也好,你其实都是在你本地去运行的。那只有你自己能看,别人看不了,你想让别人能看,你不管是测试人员还是这个最终的用户,他们想看,你得考虑到他们能看哪个服务器,你得部署到人家能看的那个服务器上啊才行。诶,所以说呢,就必须得经过这样的这个过程啊,去给人家部署到这个服务器上面才可以,而且呢,还必须得得拿到从代码库里边儿呢,拿到这个完整的代码,还不能够从你这个本地拿你这个局部的。啊,所以说生产环境下,跟我们自己一个人闷头开发呢,这个有很大区别,那么我们刚才说的这个叫手动的部署,那如果说我们使用这个jins这样的工具,帮我们实现自动化的部署会怎么样呢?
03:05
呃,猛地一看这个图呢,这个过程哈,是这个稍微复杂一些,但是呢,我们说呢,这里边儿哈,除了这个提交的这个部分啊,除了这一步是我们人为的去做的,我们把这环境搭起来以后,整个的这个部分哈,全是自动的。啊,全是自动的,那么我们就看一看它这个机制是怎么工作的呢,我们从自己的这个局部呢,去提交代码啊,或者说叫推送代码,推送到这个代码库里边,那么这个时候呢,我们这个操作哈,提交也好,推送也好的,这个操作就会触发一个钩子程序。啊,这个钩子程序呢,就是干这个用的,它就是能够在这种情况下呢,被触发,它触发了以后呢,他就通知我们jins jins呢,他再去调他的这个GI或者SSUV的插件,从我们这个代码库里边呢,去拿到这个完整的这个源码。
04:00
哎,就是这个程序呢,他会去拿这个源码,然后呢,JS呢,再调用我们这个ma的插件啊,你看他也需要ma哈,诶去对这个源码呢,执行打包的操作,得到挖包,然后呢,JS再调用一个叫deploy to web container这样一个插件,把这个挖包呢,部署到他们开的服务器上边,那么我们测试人员或者最终用户呢,他们你看到的呢,就是这个最新的这个代码,它的执行的结果。啊,就是按照最新的代码执行的这样一个效果啊呃,这个好处是什么呢?我们想象一下哈,就是我只要开发人员呢,只要一提交,或者说1PUSH1推送,那么我这边用户呢,看到的就是最新版。整个这个过程呢,全是自动的。啊,这就是它的意义所在啊,大家如果能够找到这感觉哈,你能明白我说的是什么意思,你就能够,你哪怕没有装过这个过程,那你也能够体会到这它其实是能够给我们带来很大的方便的啊,嗯。
05:03
这个时候我们说呢,因为这里边儿涉及到我们环境的这个搭建,涉及到构建啊,涉及到这个版本控制,所以说呢,我们需要大家具备的前置知识呢,有Linux的基本操作,有ma文的构建管理的知识啊,还有我们这个github或者是SV的这个使用。啊,所以说我们这个JS呢,它确确实实啊,这个真正我们用起来的时候会发现它是一个综合性很强的这样一个工具啊,学习的时候呢,对大家来说呢,也确实是有比较高的要求的。
我来说两句