1、文章介绍
本文目的在于演示sonarqube+jenkins+svn+maven是如何集成工作的,最后通过一个java项目和一个python项目展示代码质量检测过程。
1.1 sonarqube
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。 Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
- 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
- 潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
- 糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
- 重复 显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
- 注释不足或者过多 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
- 缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率。
- 糟糕的设计 通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。
1.2 jenkins
一款CI/CD工具
1.3 SVN
代码版本管理
1.4 maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
2、实验环境
本实验环境主要在一台vmware虚拟机中进行,虚拟机ip:192.168.110.51
192.168.110.51(centos7) |
192.168.110.1(windows7) |
||
安装软件 | 1 | Jenkins-2.150 (https://jenkins.io/download/) |
TortoiseSVN-x64-1.10.0 |
2 | Sonarqube-7.6 (https://www.sonarqube.org/) |
||
3 | Sonar-runner-2.4 (http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip) |
||
4 | subversion -1.7.14 (yum安装) |
||
5 | Maven-3.6.0 (http://maven.apache.org/) |
||
6 | Jdk1.8 (https://www.oracle.com/technetwork/java/javase/downloads/index.html) |
||
7 | Mysql5.6 (https://www.mysql.com/) |
3、环境搭建
除非特别说明,以下所有操作均在虚拟机192.168.110.51上执行
3.1 svn服务端安装
使用普通用户apps安装
1)查询是否安装svn
[apps@localhost ~]# rpm -qa|grep -i subversion
[apps@localhost ~]#
2)yum安装
[apps@localhost ~]# sudo yum install subversion
3)新建文件夹用于存放svn仓库
[apps@localhost ~]# sudo mkdir -p /apps/svr/svn
[apps@localhost ~]# sudo chown -R apps:apps /apps
4)创建一个版本库
[apps@localhost ~]# svnadmin create /apps/svr/svn/project1
[apps@localhost ~]#
5)修改配置文件
[apps@localhost ~]# cd /apps/svr/svn/project1/conf/
[a