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

简介:

1.前言

在上一篇讲述了如何在CentOS7中安装并使用代码质量管理平台SonarQube6.4,在上一篇中讲到了SonarQube支持多种方式来分析代码质量,其中有一种方式之一就是在持续集成工具中来自动完成代码质量分析,本篇就是继续上一篇来讲述如何安装并使用Jenkins。Jenkins的前身是Hudson,在写作本文时Jenkins的最新版本为2.84.

2.准备

软件准备:

jenkins.war:Jenkins的部署文件,下载地址:http://mirrors.jenkins.io/war/2.84/jenkins.war

Microsoft Build Tools 2015:无需安装VisualStudio,仅安装本软件即可使用MSBuild来编译Visual Studio创建的项目文件或解决方案文件,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=48159

3.安装

由于是直接下载的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/访问,以下是访问界面:

696b8c7d3c22e40d3a02a733f7936c68.png-wh_

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

e88dc8372ad27815e25d53a3249fd96d.png-wh_

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

2bd92d3182055ddc919e7c8c8289f5d8.png-wh_

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

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

4316904b8ac21a5c4033abdc02c752f7.png-wh_

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

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

 

4.配置

4.1插件配置

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

 7f010776b08efe1524015673f5bd030e.png-wh_

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

4.2配置MSBuild

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

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

9638f13de9994e67d58d74895fd295c5.png-wh_


我使用的VS2015,所以MSBuild的版本是14.0。如果不想完整安装Visual Studio,可以安装MSBuild Tool,在这里我安装的就是Microsoft Build Tools 2015,下载地址为:https://www.microsoft.com/en-us/download/details.aspx?id=48159

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

4.3配置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节点配置相关信息,如下图所示:

39b00b402f6f98a9f8c2fcb7233f13cb.png-wh_

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

5.检验配置

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

两个示例项目的git版本库地址:

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

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

 

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

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

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


1ceebffa6782874a90c00d9ad5b9e315.png-wh_


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

a2e998a4200398503b5fddd7474a6ce4.png-wh_


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


Jenkins支持常见的源代码管控系统,如CVS/SVN/Git等。由于示例项目使用了git作为源代码管控工具,所以需要填写相关的信息,如git版本库地址、认证信息、源代码分支信息。第一次使用的时候因为没有版本库认证信息,需要创建,点击“Credentials”旁边的“Add”按钮,如下图所示:

f3a5a9318946b0c800a8bd6ec7639b3f.png-wh_


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

e52e1facebd8dd136a932ca4c8e017c8.png-wh_


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

c4380fcffeec443f81190ebb50135755.png-wh_


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

855e7a91c487cd3d17a79445972900ad.png-wh_

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

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

3b655969e2ffa0bba6ab27db053c5965.png-wh_


此外,因为编译Java和C#两种不同语言的项目方式不同,所以在构建节点有些不太一样。在这里选择的是MSBuild,同时需要制定编译时的项目文件,基于解决方案或是基于项目编译均可,本人这里选择是编译整个解决方案,即“MSBuild Build File”来指定,同时用“Command Line Arguments”来指定编译时的参数,这个可以在命令行下查看MSBuild支持哪些参数,分别有什么意义。

baebadf36fc3ffe16922b286c6f0a918.png-wh_

 

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

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

fb892f0149169560b55f3e1cd6e20ef0.png-wh_


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

2c78c3f2cd97ef982bdd6b2971207c8b.png-wh_


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

cdd33ae393820922cd5df98b01acf287.png-wh_


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

 

另外,在Linux中/{User_Name}/.jenkins/这个目录会保存很多Jenkins的一些中间过程信息(如果在Windows系统中则为C:\Users\{User_Name}\.jenkins\,{User_Name}为登录到系统中的名字),比如在Jenkins中迁出后会保存到/{User_Name}/.jenkins/workspace/中(Windows中对应为C:\Users\{User_Name}\.jenkins\workspace\),如果是jar或者exe文件可将其复制到/{User_Name}/.jenkins/userContent/中(Windows中对应为C:\Users\{User_Name}\.jenkins\userContent\),这样虚拟机就可以通过http://192.168.60.168:8080/jenkins/userContent/来访问(虚拟机内部则为:http://localhost:8080/jenkins/userContent/)。

6.总结

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















本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/1975448,如需转载请自行联系原作者





相关文章
|
2月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
1月前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
66 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
|
10天前
|
Linux
linux之centos安装dataease数据报表工具
linux之centos安装dataease数据报表工具
|
11天前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
2月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
49 1
|
1月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
53 0
|
2月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
48 0
|
2月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
2月前
|
jenkins Java 测试技术
Jenkins 在持续集成/持续交付(CI/CD)管道中的应用
【8月更文第31天】 在现代软件开发过程中,持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)已经成为提升开发效率和软件质量的重要实践。Jenkins 是一个广泛使用的开源工具,它能够帮助团队实现自动化构建、测试和部署,是 CI/CD 流水线的核心组件之一。本文将详细介绍 Jenkins 在 CI/CD 管道中的应用,并提供具体的代码示例。
52 0
下一篇
无影云桌面