开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins相关的知识,希望对你有一定的参考价值。

扫描二维码或点击图片进入西安源创会报名


摘要: 本文讲述了如何使用Jenkins来对项目持续集成,分别以Java和C#两类常见的项目类型做了演示


由于时间关系,仅仅简单讲述了如何配置和创建基本的持续集成项目。其实利用Jenkins除了上面演示的功能之外,还可以在构建完成后将失败或者成功的消息发邮件通知到相关人员,甚至自动部署到服务器(一般是部署到测试环境供QA测试,直接发布到正式服务器还是要慎重一点)。


前言


在上一篇讲述了如何在CentOS7中安装并使用代码质量管理平台SonarQube6.4,在上一篇中讲到了SonarQube支持多种方式来分析代码质量,其中有一种方式之一就是在持续集成工具中来自动完成代码质量分析。


本篇就是继续上一篇来讲述如何安装并使用Jenkins。Jenkins的前身是Hudson,在写作本文时Jenkins的最新版本为2.84.


准备


软件准备




安装


由于是直接下载的war文件,所以无需编译,只需将其放在Java的Web容器下即可。因在本系列中已经安装配置过Tomcat8.5,并且Tomcat的工作路径为:/usr/local/apache-tomcat-8.5.15/,因此jenkins.war放入/usr/local/apache-tomcat-8.5.15/文件夹,然后在浏览器中访问即可。


本人的CentOS7虚拟机IP为192.168.60.198,因此在外部可以通过网址http://192.168.60.198/jenkins/访问,以下是访问界面:



打开/root/.jenkins/secrets/initialAdminPassword将文件中内容复制到文本框中然后继续,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


这里选择安装建议插件,选择后如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins



这个安装过程视网络情况而定,个人感觉如果是在美国的周末时间会比较快,而在美国的工作日的白天下载速度很超级慢。


建议插件安装完成之后,出现创建管理员的界面,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


输入账户信息即可完成Jenkins的安装和第一个管理员的设置。


注意:点击“Continue as admin”链接则跳过管理员设置,管理员账户为“admin”,管理员密码为/root/.jenkins/secrets/initialAdminPassword中的内容;点击“Saveand Finish”则保存当前页面填写的内容


配置


插件配置


Jenkins提供了相当多的插件以支持各种复杂场景,从“Jenkins– 系统管理 – 管理插件”中即可看到已安装和可安装的插件,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


为便于演示,这里以本人在开源中国上的git版本库作为演示。


配置MSBuild


为了演示Jenkins对.NET项目的支持,这里我在开源中国上创建了一个.NET项目,网址是:https://gitee.com/zhoufoxcn/GoodAppCodeMaker.git,如果持续集成项目中有.NET项目,建议在Windows上安装Jenkins。安装过程和在CentOS7上一样。


点击在上一张图片中所示的“全局工具配置”链接,找到MSBuild节点,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins



安装后的路径就是C:Program Files (x86)MSBuild14.0,MSBuild.exe所在路径为:C:ProgramFiles (x86)MSBuild14.0Bin,也就是上图中“Path to MSBuild”一栏中的值。


配置Maven


为了演示Jenkins对Java项目的支持,在这里使用我在开源中国上的一个项目,网址是:https://gitee.com/zhoufoxcn/CodeGenerator.git,这个Java项目使用了Maven。所以需要下载Maven,下载网址为:

http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz,将下载下来的压缩包文件解压到一个路径下,然后记住这个路径,下面马上会用到。


点击在上一张图片中所示的“全局工具配置”链接,找到Maven节点配置相关信息,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


上图中“MAVEN_HOME”一栏的值即为解压后Maven的路径。搞过Java的朋友都知道,Java中会经常使用环境变量存储一些工作路径,如JAVA_HOME、CLASSPATH、CATALINA_HOME等。


检验配置


为了验证我们的配置能够正常工作,这里以刚刚提到的两个项目来验证(其实本来还想提一下.net core2.0的项目的,这类项目可以在Linux下运行,后来想想和Java项目类似就没有再啰嗦了)。


CodeGenerator :https://gitee.com/zhoufoxcn/CodeGenerator.git,使用了Maven的Java项目。


GoodAppCodeMaker :https://gitee.com/zhoufoxcn/GoodAppCodeMaker.git,使用VS2010开发的C#项目。

 

创建一个持续集成项目分General(通用)、源码管理、构建触发器、构建环境、构建和构建后操作六个部分。充分利用好这几个部分,可以实现很多强大的功能,并且还省了不少精力。


创建Java项目的持续集成项目


在首页点击“新建”链接,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


选择“构建一个自由风格的软件项目”,然后填写项目的名称,点击“OK”后出现如下界面:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


General部门一般情况下没有太多需要注意的,填写一些用于识别和描述的信息之后即可设置源码管理部分。

 


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


下图是我为开源中国创建的Git认证凭据截图:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


在本项目中构建触发器和构建环境中没有特别设置,如下图所示(在某些项目中可能会要求每次提交代码后就编译项目或者每天定时编译项目,都可以在构建触发器中设置):


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


然后设置构建相关的参数,比如选择我们配置好的Maven及指定Maven的goals,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


创建C#项目的持续集成项目


创建C#的持续集成项目和创建Java的持续集成项目没有太大的区别,比如在源代码管理部分除了git版本库URL不一样之外,重用了身份凭据信息,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


此外,因为编译Java和C#两种不同语言的项目方式不同,所以在构建节点有些不太一样。


在这里选择的是MSBuild,同时需要制定编译时的项目文件,基于解决方案或是基于项目编译均可,本人这里选择是编译整个解决方案,即“MSBuild Build File”来指定,同时用“Command Line Arguments”来指定编译时的参数,这个可以在命令行下查看MSBuild支持哪些参数,分别有什么意义。


至此,创建了两个持续集成项目,在系统开始页面即可看到刚刚创建的项目,点击最右侧的图标即可立即构建项目。


这里需要说明的是如果C#项目使用了NuGet或者Java项目使用了Maven,请确保安装了Jenkins的服务器能够下载项目引用的dll或者Jar,否则会构建失败。


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


点击Jenkins系统左侧的“任务历史”链接,可以查看历次以来的构建情况,如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


如果某次编译出戳,可以点击该次构建右侧的图标查看控制台输出(上图中用红色箭头标识),界面如下图所示:


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


看上图就是因为Maven没有配置好导致无法编译。


另外,在Linux中/{User_Name}/.jenkins/这个目录会保存很多Jenkins的一些中间过程信息(如果在Windows系统中则为C:Users{User_Name}.jenkins,{User_Name}为登录到系统中的名字):


比如在Jenkins中迁出后会保存到/{User_Name}/.jenkins/workspace/中(Windows中对应为C:Users{User_Name}.jenkinsworkspace),如果是jar或者exe文件可将其复制到/{User_Name}/.jenkins/userContent/中(Windows中对应为C:Users{User_Name}.jenkinsuserContent),这样虚拟机就可以通过http://192.168.60.168:8080/jenkins/userContent/来访问(虚拟机内部则为:http://localhost:8080/jenkins/userContent/)。


总结


本文讲述了如何使用Jenkins来对项目持续集成,分别以Java和C#两类常见的项目类型做了演示。由于时间关系,仅仅简单讲述了如何配置和创建基本的持续集成项目。


其实利用Jenkins除了上面演示的功能之外,还可以在构建完成后将失败或者成功的消息发邮件通知到相关人员,甚至自动部署到服务器(一般是部署到测试环境供QA测试,直接发布到正式服务器还是要慎重一点)。


开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins


推荐阅读

点击“阅读原文”查看更多精彩内容


以上是关于开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

开发人员学 Linux:CentOS7 安装配置持续集成工具 Jenkins

开发人员学Linux(14):CentOS7安装配置大数据平台Hadoop2.9.0

开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4

开发人员学Linux:CentOS7编译安装MySQL5.17.8多实例及主从复制

开发人员学Linux:CentOS7编译安装Git-2.13.1及使用

开发人员学Linux:CentOS7编译安装Nginx并搭建Tomcat负载均衡环境