Windows+SonarQube+Jenkins+Git+SonarPython配置持续集成的代码质量平台
来源:互联网 发布:周杰伦 斗牛 知乎 编辑:程序博客网 时间:2024/06/06 07:33
Windows+Sonar+Jenkins+Git+SonarPython配置持续集成的代码质量平台
本文以Python项目为例,构建了一个基于Windows+Sonar+Jenkins+Git的持续集成且支持代码自动分析的平台
1.1 Java中主流代码分析工具对比
1.2 SonarQube介绍
与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
Sonar 为代码的质量管理提供了一个平台,对传统的代码静态检测如 PMD、FindBugs 等工具进行整合,可以说是目前最强大的代码质量管理工具之一。
Sonar 目前支持的语言:C/C++/JavaScript/C#/Java/COBOL/PL/SQL/PL/I/PHP/ABAP/VB.NET/VB6/Python/RPG/Flex/Objective-C/Swift/Web/XML
1.3 SonarQube整体架构:
2.1 部署SonarQube
- 下载SonarQube
- 将SonarQube压缩包解压缩,执行/bin/windows-x86-64/StartSonar.bat 即完成了Sonar的启动
- 打开浏览器,登入http://localhost:9000
- 安装SonarPython插件
- [可选安装]安装Chinese Pack差价可以获得中文支持
插件的安装方法:
- 点击右上角的Login
- 键入默认管理员用户名及密码 admin ,登陆
- 点击Administration,找到System->Update Center
- 搜索插件名字,点击install,然后点击Restart重启Sonar,完成安装。卸载同理
2.2 部署SonarQube Scanner
- 将 SonarQube Scanner 压缩包解压到位置(如C:\sonar-scanner),将bin目录添加到环境变量中(C:\sonar-scanner\bin)
- (测试)打开CMD,cd到项目根目录,键入
sonar-scanner -Dsonar.projectKey=自定义projectkey -Dsonar.sources=. -Dsonar.projectName=自定义projectname -sonar.projectVersion=1.0
官方文档有一个坑,就是并没有定义projectName及projectVersion,实际测试中是必须定义的
其中-D 用来定义变量,加入-X 可以加入更多debug信息
若没有出错,说明部署成功,打开浏览器进入Dashboard,可以看到刚新建的项目代码分析结果。
2.3 部署Jenkins
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
- 下载Jenkins,选择Windows
- 运行Jenkins安装文件,安装完成后会跳出部署设置(默认地址:http://127.0.0.1:8080)
- 第一次会要求键入一个admin密码,这个密码存在Jenkins\secrets\initialAdminPassword 这个文件中,用记事本打开,复制密码粘贴到浏览器中即可,同样的,日后如果忘记管理员密码,也可以找到这个文件使用这个密码登录管理员账户。
- 安装 SonarQube Scanner for Jenkins 插件
- 进入 系统管理->Global Tool Configuration ,新增SonarQube Scannner,不勾选自动安装
Name键入SonarQube Scanner
SONAR_RUNNER_HOME键入SonarQube的绝对目录(如C:\sonar-scanner) - 点击Save保存
Jenkins插件安装方法
进入 系统管理->插件管理->可选插件,在搜索框中搜索需要安装的插件,点击直接安装,然后重启Jenkins
2.4 本文省略但必须做的步骤:
- 安装Git
2.5 将Git项目添加到Jenkins并自动完成代码检测
- 打开Jenkins控制台->新建项目->选择 构建一个自由风格的软件项目 ->输入项目名,下一步
- 源码管理选择Git
Repository URL键入项目Git地址 如 https://github.com/HiddenStrawberry/JDPackage.git
Credentials 为认证方式,点击Add添加认证, 这里可以选择多种认证方式,本文选择Github用户名/密码登录,所以选择Username with Password,填入Github的Username及Password,点击Add,然后选择刚添加的账户。 - 点击下方构建->新建构建步骤-> Execute SonarQube Scanner
- SonarQube Scanner选择SonarQube Scanner
Analysis properties键入如下内容:
sonar.projectKey=myjdp sonar.projectName=myjdp sonar.projectVersion=1.0 sonar.sources=.
注意中间没有逗号,key,name,version为自定义,其他选项留空(本例),点击保存
5. 在控制台中找到项目,点击立即构建,若构建后状态灯为蓝色,即为构建成功,若为红色,进入Build History构建失败的#次数,找到左边的Console Output,即可查看控制台中输出的错误原因。
6. 在控制台中找到项目,点击SonarQube,即可查看代码分析内容。
3.1 性能分析:
在2G/双核E5 V3 2.4GHz 新配置环境主机 上运行上述64位服务,物理内存占用约为80%,在运行构建时,CPU占用峰值可达80%,内存占用峰值达90%,由此可见SonarQube在代码分析时占用资源较大。
4.1 引用:
如何静态测试 Java 代码?
Findbugs使用
PMD使用
Eclipse静态分析插件使用
PMD、FindBug、checkstyle、sonar这些代码检查工具的区别?各自的侧重点是什么?
FindBugs、PMD和CheckStyle对比
构建基于Jenkins + Github的持续集成环境
SonarPython - Plugins - Doc SonarQube
- Windows+SonarQube+Jenkins+Git+SonarPython配置持续集成的代码质量平台
- Maven-sonarqube-jenkins-git 持续集成开发环境的搭建
- jenkins集成sonarqube代码质量跟踪分析
- jenkins + sonarQube 集成 检测代码质量
- SonarQube代码质量管理平台安装及与Jenkins的集成
- Dubbo教程持续集成篇--SonarQube代码质量管理平台的配置与使用
- 分布式架构学习之持续集成:011--SonarQube代码质量管理平台的安装、配置和使用
- 持续集成篇-- SonarQube代码质量管理平台的配置与使用
- 持续集成篇-- SonarQube代码质量管理平台的安装
- 个推如何管理亿级代码的质量?持续集成SonarQube 代码质量管理系统
- Jenkins + Maven + SonarQube 构建代码质量检测平台
- Android项目的持续集成:Gradle+SonarQube+Jenkins
- jenkins+maven+sonarqube集成配置
- Dubbo文档持续集成篇--SonarQube代码质量管理平台的安装
- 持续集成Jenkins+sonarqube部署教程
- Jenkins持续集成配置(git+mvn)
- SonarQube与Jenkins结合提高代码质量
- 搭建服务器jenkins+sonar+maven的持续集成代码质量环境
- VB程序设计总结
- 破解MyEclipse
- 让安全责任成为一种习惯
- 深入理解git push
- 刷题——Roadblocks POJ
- Windows+SonarQube+Jenkins+Git+SonarPython配置持续集成的代码质量平台
- 分页查询简单实现(Freemarker+SpringMVC+Mybatis)
- MySQL Linux 手动安装 自动安装 安装教程
- 数据清洗很要命?那是因为你没看到这份攻略!
- exit(0)、exit(1)、return 区别
- SpringCloud--服务消费者(Feign)
- 提交页面过程中覆盖原页面加灰效果
- RHCE——通过GREP使用正则表达式
- 《将博客搬至CSDN》