SonarQube代码检测环境搭建

SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

  • (1) 不遵循代码标准
    SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
  • (2) 潜在的缺陷
    SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
  • (3) 糟糕的复杂度分布
    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
  • (4) 重复
    显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。
  • (5) 注释不足或者过多
    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
  • (6) 缺乏单元测试
    SonarQube可以很方便地统计并展示单元测试覆盖率。
  • (7) 糟糕的设计
    通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

 

安装过程

软件版本:jdk1.8 Linux Centos Mysql 7.6 SonarQube7.2.1

创建数据库:

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

修改配置文件 sonar.properties:

sonar.jdbc.url=jdbc:mysql://192.168.137.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

 

sonar.jdbc.username=root

sonar.jdbc.password=root

sonar.sorceEncoding=UTF-8

创建用户:

useradd sonar

passwd sonar

赋予 sonar 用户权限

启动 ES

启动 sonarqube 初次启动稍微慢一点,因为要初始化数据库信息

启动成功:访问 http://ip:9000

默认账号密码:admin/admin

安装 SonarScanner 代码扫描器

配置环境变量:

# sonar scanner

export PATH=$PATH:/home/zhutong/tools/sonar-scanner/bin

在目标项目根目录下创建文件 sonar-project.properties

#projectKey是项目的唯一标识,不能出现重复,可随意起

sonar.projectKey=项目标识,随便起即可

# this is the name displayed in the SonarQube UI,不能是中文

sonar.projectName=你的项目名称

# 项目的版本号

sonar.projectVersion=0.5

# 项目的代码的编码格式

sonar.sourceEndcoding=UTF-8

# 项目的语言

sonar.language=java

# 项目的源代码目录

sonar.sources=src

# 项目的编译生成的class文件的所在目录

sonar.java.binaries=target/classes

进行代码检测,执行命令:sonar-scanner

==========

配置集成 jenkins

增加构建步骤,Excute SonarQube Scanner

选项 Analysis properties 增加配置:

#项目的唯一编号,不可重复,随便写

sonar.projectKey=analyseLaw

#项目名称

sonar.projectName=analyseLaw

#项目版本号

sonar.projectVersion=0.0.1-SNAPSHOT

# 项目的源代码目录

sonar.sources=.

#项目代码的编码格式

sonar.sourceEncoding=UTF-8

#项目的语言

sonar.language=java

# 项目的编译生成的class文件的所在目录

sonar.java.binaries=/home/zhutong/datas/analyseLaw/target/classes

sonar.login=admin

sonar.password=admin

上一篇:java – 声纳属性文件


下一篇:SonarQube之——安装完后出现SonarQube is under maintenance. Please check back later.