最近因为ITOO需要,所以学习了Jenkins。在大大组长安排下任务之后,我和浩源开始研究如何将系统构建到Jenkins上。构建完成了,现在重新认识一下Jenkins,看看它是干什么的?为什么要用它?
度娘说:Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
如何看待这种解释?
我们一般做项目,都是通过代码管理工具SVN,Clearcase,VSS等进行代码版本的控制,这也是合作开发必不可少的工具。那么Jenkins又扮演着什么角色呢?在我们提交代码到SVN之后,我们会发现一个问题,就是我们不能实时的监测我们提交的代码是否会出现我们预想的效果。我们如果想要看到效果,只能把最新的代码down下来,然后运行之后才能看到,所以这个代价是比较大的。而Jenkins恰恰解决了这个问题,我们将SVN上的现在的代码集成到Jenkins上,然后发布到IIS上,而在我们之后无论更新代码只要提交到SVN上,Jenkins就能自动帮我们构建并发布了。我们通过发布好的网站看效果就OK了。
我们已经知道Jenkins的作用了,那么如何将系统从SVN构建到服务器上呢? 下边是我们构建系统到Jenkins上的具体步骤:
管理节点
slave-agent.jnlp
子节点配置
子节点环境里必须有(JDK),然后安装从主节点下载的slave-agent.jnlp形成一个
Connection
新建Job
输出路径只有WCF需要配置,其他层不需要配置
配置难点:输出路径的格式
/p:OutputPath=C:\ITOO4.1_Public\FreshSystem\FreshConfigureManage/ITOO.FreshConfigureManage.Service\bin
红色部分的命名要求一致;
绿色部分的命名要求是自己所在系统的名字;
黄色部分的命名要求是各系统中系统模块的名字
构建批处理文档
批处理文件的内容:
@echo off
set projwhich=testgss
set workspace=C:\ProgramFiles\Jenkins\workspace
set objecwcf=%workspace%\%projwhich%\ITOO.FreshConfigureManage.Server\bin
set jbosspath=C:\ITOO4.1_Publish\FreshSystem\FreshConfigureManage\ITOO.FreshConfigureManage.Server\bin
echo [%BUILD_ID%] 正在检索dll包到%project_tmp%临时目录
for /r "%objecwcf%"%%i in (ITOO*.dll) do (
echo 正在复制%%i到%jbosspath%\
copy /y "%%i"%jbosspath%\
)
echo 项目部署完毕。
Pause
红色部分: 创建的Job的名称
绿色部分: service端的bin目录路径
粉色部分: 固定
蓝色部分 : 自己所负责的系统和模块儿的service端的bin目录
总结
前段时间开过一个关于学习和任务的一个头脑风暴,感觉主题把学习和任务划分成了对立面,但是就我看来,学习和任务本来就没有一个很明显的界限。我们在做任务的过程中学习了,在学习的过程中把任务做完了。头脑风暴我的收获是,不要只学习,不完成任务,这样项目组长会对你有意见。但是在只做任务,没有从任务中收获到东西,那么你做再多的任务也是在原地踏步。所以工作和学习这就是一回事!