在实习的公司中需要用到Jenkins,用Jenkins实现持续集成,同时可以实现自动化测试和自动化部署。公司的项目是.net写的,所以需要学习一些.net项目的构建插件。
一、安装
- Windows下安装非常简单,到Jenkins官网下载最新
.war
包,放到一个文件夹内,如D:\Jenkins
; - cmd命令行进入
D:\Jenkins
文件夹,运行java -jar jenkins.war
; - 访问
localhost:8080
就可以打开Jenkins,安装成功。 - 注意根据命令行提示获取存储初始密码,然后修改密码就可以了,一般在C:Users/userName/.jenkins下。
- 初始可以什么都不装,后面需要用到什么插件再装。
二、构建.net项目
1.安装源代码管理插件
- 想要构建一个项目,必须先要有代码。至于用什么代码管理工具,都有相应的插件,如Git,SVN,Mercurial等等。当然你也可以不装,直接把项目文件指向具体的文件夹。
- 我公司使用的是Mercurial,因此安装的是Mercurial plugin。在系统管理>管理插件>可选插件,找到对应的直接安装就行。
- 安装完插件需要配置一下,让Jenkins能调用系统已存在的hg工具(这里就是说,你电脑本身需要装有版本管理工具,比如git,tortoiseGit,tortoiseHg等,Jenkins的Mercurial plugin才能调用系统的工具来clone代码)。
- 配置是在Global Tool Configuration,我这里保持默认的配置就好
2.安装MSBuild插件
- 有了代码,那就需要有像visual studio一样编译代码的工具才行,这时候就需要用到MSBuild插件了。MSBuild是微软的用来编译.net项目的工具,用命令行就可以实现代码的编译,具体大家可以百度一下。
- 装完插件,然后在 系统管理>Global Tool Configuration下,作如下配置:
Path to MSBuild
我这个配置其实是Vs中的MSBuild,实际上在每台电脑中都是有MSBuild的,在C:\Windows\Microsoft.NET\Framework64\v4.0.30319
下。之所以用VS中的MSBuild,只是因为用电脑自带的MSBuild编译版本较高的项目会有一些不支持的错误,所以最好用最新的MSBuild。
装了上面两个插件,其实你应该会发现,Jenkins的插件工作方式其实实际上是调用系统已存在的工具,Jenkins只是负责调用。
3.配置Nuget工具
- 这是我踩的一个坑,远程仓库一般都不会把引用的dll包括进去,平常在vs中编译,项目中引用的packages,vs会自动下载的,但是在MSBuild的环境下,需要你手动去配置Nuget的包。
- 这时候就要用到Nuget工具了,先下载nuget.exe。
- 然后把nuget.exe放在一个文件夹就行,我这里直接放在
D:\Jenkins
里面,稍后我们会用命令行来调用它下载项目引用的packages。
4.新建一个自由风格的软件项目
- 前面做好了各种准备,就可以开始新建项目来构建了。
(1)我们这里.net项目一般都是选择自由风格,其他的应该是Java项目了。
- 配置项可以根据自己需要来勾选,我这里选择丢弃旧的构建
(2)源码管理,你装了什么插件就会显示什么插件,none的选项表示直接用目录上的代码。
(3)构建触发器,指的是什么时候自动触发构建,可以push代码的时候就构建,或者每天特定的时间触发,我这里先都不选。
Build periodically:周期进行构建
例如:0 4 * (每天凌晨4点必须构建一次源码)
Poll SCM:根据SCM软件的版本号,定时检查源码变更。如果有更新,则checkout最新code,然后执行构建动作。
例如:/10 * (每10分钟检查一次源码变化,如果有更新才build)
#### (4)构建,首先是要用Nuget.exe来更新packages包。添加一个Execute Windows batch Command
D:\Jenkins\nuget.exe restore "C:\Users\xxx\.jenkins\workspace\test\MBFC.sln" -NoCache
(5)MSBuild的配置
/m /t:Rebuild /p:Configuration=Release /p:TargetFrameworkVersion=v4.5
(6)保存设置,立即构建
- 到这里,返回点击立即构建就可以构建了。构建出错时看下控制台输出的信息,一般都能找到解决办法。
- 后面还会有把编译的文件publish出来,单元测试并显示覆盖率,自动化测试,自动化部署等,还在研究中。
遇到的问题
- 1.解决方案文件 error MSB5009: 分析解决方案文件中的嵌套项目节时出错。
这里说明sln的文件有问题,我解决的方法是在解决方案中新建一个项目,然后删除这个项目,重新保存sln文件。
「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」
(๑>ڡ<)☆谢谢老板~
使用微信扫描二维码完成支付
