Jenkins使用

    xiaoxiao2021-03-25  109

    ![# Jenkins使用 这篇文章主要介绍Jenkins持续集成的功能以及使用方法 - 1.持续集成的概念 - 2.Jenkins简介 - 3.SonarQube简介 - 4.Jenkins使用

    1.持续集成的概念

    持续集成,Continuous integration ,简称CI。随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

    持续集成的特点

    (1)它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预; (2)需要有专门的集成服务器来执行集成构建; (3)需要有代码托管工具支持;

    持续集成的作用

    (1)保证团队开发人员提交代码的质量,减轻了软件发布时的压力; (2)持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

    2.Jenkins简介

    Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

    Jenkins特点

    (1)易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库; (2)易配置:提供友好的GUI配置界面; (3)变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中; (4)支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接; (5)集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情); JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能; (6)支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成; 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录; (7)支持第三方插件:使得 Jenkins 变得越来越强大;

    3.SonarQube简介

    SonarQube是什么?

    SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。

    Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。 (1) 不遵循代码标准

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

    (2)潜在的缺陷

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。

    (3)糟糕的复杂度分布

    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

    (4)重复

    显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

    (5)注释不足或者过多

    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

    (6) 缺乏单元测试

    sonar可以很方便地统计并展示单元测试覆盖率。

    (7) 糟糕的设计

    通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

    4.Jenkins使用

    写本篇文章之前,已经安装下载好相应的Jenkins以及SonarQube了。在这里主要讲述一下怎么使用Jenkins。 1. 在需要集成的项目根路径下新建sonar-project.properties文件,内容如下:

    # must be unique in a given SonarQube instancesonar.projectKey=my:project # this is the name displayed in the SonarQube UI sonar.projectName=myProjectName sonar.projectVersion=1.0 # Path is relative to the sonar-project.properties file. Replace “\” by “/” on Windows. # Since SonarQube 4.2, this property is optional if sonar.modules is set. # If not set, SonarQube starts looking for source code from the directory containing # the sonar-project.properties file. sonar.sources=src # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=gbk

    Jenkins使用 (1)Jenkins访问地址:http://192.168.10.203:8086/jenkins(本地址为内网环境) 如下图所示: (2)输入用户名密码,进入首页。如下图: (3)点击新建,输入item name,这里选择构建一个maven项目,如下图所示: (4)进入配置界面如下图 在源码管理标签页,选择Subversion,输入要构建项目svn的Repository URL,并指定对应的Credentials即是用户名密码 在Post Steps标签页,选择一个Execute shell,输入Sonar-scanner的执行脚本命令/home/jenkins/sonar/sonar-scanner-2.8/bin/sonar-runner,最后保存。 (5)进入构建页面,如下图: 点击立即构建,等待构建完成。点击返回面板,如下图: 构建项目成功。

    Sonar查看使用 Sonar登录地址http://192.168.10.203:9000/,输入对应用户名密码进入下图: 这里可以查看Sonar检测出来的项目存在的BUG以及潜在风险。

    转载请注明原文地址: https://ju.6miu.com/read-9157.html

    最新回复(0)