千家信息网

SonarQube代码质量管理平台安装与使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScr
千家信息网最后更新 2026年11月03日SonarQube代码质量管理平台安装与使用

Sonar简介

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量

通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

sonarQube能带来什么?

Developers' Seven Deadly Sins
1.糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,

且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试

2.重复
显然程序中包含大量复制粘贴的代码是质量低下的

sonar可以展示源码中重复严重的地方

3.缺乏单元测试

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

4.没有代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
5.没有足够的或者过多的注释
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降
而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
6.潜在的bug

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

7.糟糕的设计(原文Spaghetti Design,意大利面式设计)
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系
可以检测自定义的架构规则
通过sonar可以管理第三方的jar包
可以利用LCOM4检测单个任务规则的应用情况
检测耦合

关于Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design

通过sonar可以有效检测以上在程序开发过程中的七大问题

SonarQube安装

预置条件
1.已安装Java环境
2.已安装有MySQL数据库

软件下载地址:http://www.sonarqube.org/downloads/
下载SonarQube与SonarQube Runner
中文补丁包下载:http://docs.codehaus.org/display/SONAR/Chinese+Pack

1.数据库配置
进入数据库命令
#mysql -u root -p

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;

2.安装sonar与sonar-runner
将下载的sonar-3.7.zip包解压至Linux某路径如/usr/local
将下载的sonar-runner-dist-2.3.zip包解压某路径/usr/local
添加SONAR_HOME、SONAR_RUNNER_HOME环境变量,并将SONAR_RUNNER_HOME加入PATH

修改sonar配置文件
编辑/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持
这里使用mysql,因此取消mysql模块的注释
#vi sonar.properties

  1. sonar.jdbc.username: sonar

  2. sonar.jdbc.password: sonar

  3. sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

  4. # Optional properties

  5. sonar.jdbc.driverClassName: com.mysql.jdbc.Driver



修改sonar-runner的配置文件
切换至sonar-runner的安装目录下,修改sonar-runner.properties
根据实际使用数据库情况取消相应注释

  1. #Configure here general information about the environment, such as SonarQube DB details for example

  2. #No information about specific project should appear here

  3. #----- Default SonarQube server

  4. sonar.host.url=http://localhost:9000

  5. #----- PostgreSQL

  6. #sonar.jdbc.url=jdbc:postgresql://localhost/sonar

  7. #----- MySQL

  8. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8

  9. #----- Oracle

  10. #sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE

  11. #----- Microsoft SQLServer

  12. #sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor

  13. #----- Global database settings

  14. sonar.jdbc.username=sonar

  15. sonar.jdbc.password=sonar

  16. #----- Default source code encoding

  17. sonar.sourceEncoding=UTF-8

  18. #----- Security (when 'sonar.forceAuthentication' is set to 'true')

  19. sonar.login=admin

  20. sonar.password=admin

3.添加数据库驱动
除了Oracle数据库外,其它数据库驱动都默认已经提供了,且这些已添加的驱动是sonar唯一支持的,因此不需要修改
如果是Oracle数据库,需要复制JDBC驱动至/extensions/jdbc-driver/oracle目录


4.启动服务
目录切换至sonar的/bin/linux-x86-64/目录,启动服务
#./sonar.sh start 启动服务
#./sonar.sh stop 停止服务
#./sonar.sh restart 重启服务

至此,sonar就安装好了
访问http:\\localhost:9000即可

5.sonar中文补丁包安装
中文包安装
安装中文补丁包可以通过访问http:\\localhost:9000,打开sonar后,进入更新中心安装
或者下载中文补丁包后,放到SONARQUBE_HOME/extensions/plugins目录,然后重启SonarQube服务

sonar作为Linux服务并开机自启动
新建文件/etc/init.d/sonar,输入如下内容:

  1. #!/bin/sh

  2. #

  3. # rc file for SonarQube

  4. #

  5. # chkconfig: 345 96 10

  6. # description: SonarQube system (www.sonarsource.org)

  7. #

  8. ### BEGIN INIT INFO

  9. # Provides: sonar

  10. # Required-Start: $network

  11. # Required-Stop: $network

  12. # Default-Start: 3 4 5

  13. # Default-Stop: 0 1 2 6

  14. # Short-Description: SonarQube system (www.sonarsource.org)

  15. # Description: SonarQube system (www.sonarsource.org)

  16. ### END INIT INFO

  17. /usr/bin/sonar $*

SonarQube开机自启动(Ubuntu, 32位):

sudo ln -s $SONAR_HOME/bin/linux-x86-32/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo update-rc.d sonar defaults

SonarQube开机自启动(RedHat, CentOS, 64位):

sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo chkconfig --add sonar

使用SonarQube Runner分析源码

预置条件
已安装SonarQube Runner且环境变量已配置,即sonar-runner命令可在任意目录下执行

1.在项目源码的根目录下创建sonar-project.properties配置文件
以Android项目为例:

  1. sonar.projectKey=android-sonarqube-runner

  2. sonar.projectName=Simple Android project analyzed with the SonarQube Runner

  3. sonar.projectVersion=1.0

  4. sonar.sources=src

  5. sonar.binaries=bin/classes

  6. sonar.language=java

  7. sonar.sourceEncoding=UTF-8

  8. sonar.profile=Android Lint

注:要使用Android Lint
规则分析需要先访问http:\\localhost:9000更新中心添加Android Lint插件,使其可以分析Android Lint规则

2.执行分析
切换到项目源码根目录,执行命令
# sonar-runner
分析成功后访问http:\\localhost:9000即可查看分析结果

不同参数的意思:
http://docs.codehaus.org/display/SONAR/Analysis+Parameters
不同项目的源码分析示例下载:
https://github.com/SonarSource/sonar-examples/zipball/master

与IDE关联

最后,当然了,得与IDE相关联,才能更方便地实时查看

以Eclipse为例,请见:http://docs.sonarqube.org/display/SONAR/SonarQube+in+Eclipse

附:

sonarQube官网地址:http://www.sonarqube.org/
sonarQube官方文档地址:http://docs.codehaus.org/display/SONAR/Documentation
sonarQube示例地址:http://nemo.sonarqube.org/

网上另两篇相关的文章:http://www.cnblogs.com/gao241/p/3190701.html
http://www.myexception.cn/open-source/1307345.html


数据 数据库 代码 检测 分析 服务 文件 注释 目录 规则 配置 质量 源码 中文 管理 地址 程序 补丁 项目 测试 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 互联网佳科技有限公司 华中科技大学互联网 亿人帮互联网科技 国外互联网科技网站 互联网科技大会案例 互联网实体化科技化 青岛中康互联网医疗科技有限公司 移动互联网科技股 全球顶尖互联网科技公司 智腾互联网科技有限公司 玉溪互联网科技怎么选 深圳市罗太互联网科技有限公司 济南有互联网科技公司吗 美国互联网科技实力 深圳互联网科技的发展 江苏苏星互联网科技有限公司 萌小萌互联网科技河南有限公司 10位科技互联网大佬 承德科技产业互联网平台 杭州互联网科技公司 宜安科技 互联网金融 互联网科技公司招聘 宁夏科技产业互联网案例 注册互联网科技公司经营范围大全 互联网科技大奖都有哪些公司 天津腾达互联网科技有限公司 昆明中奇联合互联网科技 科技互联网行业投资研究 安徽零酒互联网科技有限公司
0