码迷,mamicode.com
首页 > 其他好文 > 详细

jenkins持续构建

时间:2015-01-18 10:34:06      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:持久层框架   批处理   

系统持续集成是一个好东西。可是一旦发布的程序,不能构建或是构建后发现功能不是正常的,就不是很好了。这里说说这段时间的构建吧。

先说说这几天出的问题吧。这也是项目之初的共性

代码问题

1svncheckout的代码就有错误。造成编译不通过

  •  1.1这种问题多为增删文件没有整体提交代码,造成文件局部不存在,但是整体还在。
  •  1.2 没有整体编译代码,造成上传错误代码
  •  1.3 类库版本不一致,造成编译解决方案冲突

以上三种是基本的构建失败常用的问题。

2 缺少三方依赖包和项目中其他DLL

然后构建成功,并不代表我们的程序正常运行。还得看功能是否正常。这就涉及到类库的引用是否正常了。这里我们将第三方公用包和自己封装的类库使用了NuGet管理包进行了管理,创建了一个packages包,安装我们的类库就自动引入dll放在了packages中,在上传packagesvn中,这样程序构建就在packages中查找引用了。当然对于一些如通过反射的dll就需要使用构建后的命令自动拷贝了。下面我们就来做个示范吧

如系统基本架构图

 技术分享

总体包括的有IBLLIDALWEB,和一些工厂。所以构建的时候需要将DALBLL以及DALFActoryBLLFacotry中的DLL打包到Web层中。所以就需要将他们的生成路径放入到WEB层,这个在vs中是完全没有问题的。而在 Jenkins构建中,刚开始没有想到构建这些所有项目。当发现构建成功时,任务项目基本是没有问题。当访问功能时却发现数据都没有现象, 当在web调试时发现远程调用方法出现问题


技术分享

查看生成的dll缺少DALDALFacotry,是个严重的问题。于是就增加了构建项目,构建项目也不能生成到发布到web层呀

基本的思路是

  • 1 构架其他工程文件将dll生成到源码总。
  • 2 将源码中的dll使用bat文件拷贝到发布的项目中
  • 3 将所有的依赖dll都放入packge中,引用packgedll

这样一来,就不会去别去查找,也不依赖系统中的dll了,避免缺失。效果图

构建BLL层和DAL

 技术分享

构建DALFacotryWeb层服务

技术分享

构建其他解决方案中的Client 和添加dll拷贝批处理命令

技术分享

批处理文件命令,注意文件路径最好不要有空格,否则Jenkins不识别该命令。该命令是将源码中的dll拷贝到发好的文件中的bin

bat文件可以查看上篇文章

技术分享


拷贝的dll

技术分享

小结:

jenkins编译是只编译依赖项目中的dll或(引用中的dll),所以向DAl这些不是直接引用的,就需要自己想办法去生成了。之所有没有在这些文件下输出文件,就像要将这些dll生成到源码中,然后直接复制。基本的思路就结束了,希望对大家有所理解。

jenkins持续构建

标签:持久层框架   批处理   

原文地址:http://blog.csdn.net/han_yankun2009/article/details/42833697

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!