jenkins持续构建

来源:互联网 发布:江西网络问政 编辑:程序博客网 时间:2024/05/02 04:31

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

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

代码问题

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生成到源码中,然后直接复制。基本的思路就结束了,希望对大家有所理解。

1 1
原创粉丝点击