.net 基于Jenkins的自动构建系统开发
先让我给描述一下怎么叫一个自动构建或者说是持续集成 :
就拿一个B/S系统的合作开发来说,在用SVN版本控制的情况下,每个人完成自己代码的编写,阶段性提交代码,然后测试-修改,最后到所有代码完工,进行总的测试-修改,最后发布测试。往往在最后发布阶段,会集中出现好多问题,并且这样的问题不好解决,因为最后一次的测试,前些阶段隐藏的问题就都暴露出来了!
持续自动构建就是要解决这个问题!
首先我们用到的工具有:
1.SVN
2.Jenkins
3.MSBuild
4.HMailSever
5.Nexus
SVN:它的主要用途就是整合项目代码,将团队开发的程序,集合到一起,起到一个统一整合程序的作用!例如,将三层架构中每层的代码,提交到一个版本库。同时,还起到一个备份作用,也就是说,在我们的每一次提交,对版本库的每一次改动,都会由它在其他地方再去备份一个一模一样的版本库,这样就是使得我们的源代码非常安全。(备份资料,这可是老师经常教导,常重装系统的童鞋都清楚!)
Jenkins:现在只知道这是一个非常强大的框架,只需要明白,它完成的任务是:加载源程序代码,在我们的自动构建中,是从SVN的版本库中加载,当然还可以通过别的路径加载。自动编译、发布、报错,按照完整的发布步骤自动执行,最后报告测试结果,Jenkins,非常人性化,他可以把结果,以邮件的方式反馈结果。
MSBuild:Jenkins针对每种开发环境,都有其相应的插件来完成测试。在.NET环境下,这个功能是靠MSBuild来实现。
这两个的关系就是:首先要安装上Jenkins,然后安装该插件,才能完成.NET程序的自动构建测试。
HmailSever:这是一个邮件服务器。它的作用是,在没有外网的情况下,设置自己的邮件服务器,相当于自己建了一个“163邮箱”,完成邮件的沟通。既然Jenkins提供了邮件提醒功能,就不得不好好利用了。有些项目的开发,需要关闭外网,有了它就解决了邮件的收发。
Nexus:是一个私服器,发挥着中介功能,提供各个服务器之间的连接。要想在不提供外网的条件下,完成自控构建、编译、发布测试,是少不了它的。
通过这些工具,在团队开发中,只需我们完成每个小阶段的编程后,向SVN提交,通过Jenkins马上就能知道发布后的结果(哈哈哈,坐等邮件就OK 喽!)。这就避免了,最后集成的时候因为修改BUG而焦头烂额了。
此乃团队开发的利器啊!!