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

来源:互联网 发布:js shuzu 编辑:程序博客网 时间:2024/05/19 06:38

 

 

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



1 SonarQube介绍

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量通过插件形式,可以支持包括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检测单个任务规则的应用情况,检测耦合。

 

1.1 前置条件

1、linux安装JDK环境,安装教程参见:http://blog.csdn.net/yuan_xw/article/details/49948285

2、linux安装MySQL数据库,安装教程参见:http://blog.csdn.net/yuan_xw/article/details/xxx.html

3、本地安装MySQL可视化工具SQLyog,下载地址:http://download.csdn.net/detail/yuan_xw/9535853

4、修改MySQL配置

[mysqld]下面添加

# 修改MySQL存储引擎

default-storage-engine=INNODB

#innodb_buffer_pool_size参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲默认值:128M,专用mysql服务器设置的大小:操作系统内存的70%-80%最佳。

innodb_buffer_pool_size=256M

 

# query_cache_type变量有三个取值0,1,2,分别代表了offondemandmysql默认为开启 on意思是说,如果是0,那么query cache 是关闭的。

如果是1,那么查询总是先到查询缓存中查找,即使使用了sql_no_cache仍然查询缓存,因为sql_no_cache只是不缓存查询结果,而不是不使用查询结果。

query_cache_type=1

# 设置MySQL的查询缓存query_cache_size,最少设置15M

query_cache_size=32M

 

5、重启MySQL验证设置是否有效

重启MySQL命令:service mysqldrestart

查看设置是否有效:showvariables like '%query_cache%';


 

6、创建数据库sonarqube

CREATE DATABASEsonarqube CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER'sonarqube' IDENTIFIED BY 'sonarqube';

GRANT ALL ONsonarqube.* TO 'sonarqube'@'%' IDENTIFIED BY 'sonarqube';

GRANT ALL ONsonarqube.* TO 'sonarqube'@'localhost' IDENTIFIED BY 'sonarqube';

FLUSH PRIVILEGES;


 

7、关闭Linux防火墙

关闭防火墙:sudosystemctl stop firewalld.service

关闭SELinuxsed -i'/SELINUX/s/enforcing/disabled/' /etc/selinux/config

关闭开机启动:sudo systemctldisable firewalld.service

        重启服务器:reboot

1.2 sonarqube下载安装

1、下载最新的sonarqube版本sonarqube-5.6.4.zip到目录位置:/usr/local/software/

执行命令:

cd/usr/local/software

wgethttps://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.4.zip

 

2、解压sonarqube

执行命令:unzip sonarqube-5.6.4.zip


 

3、修改sonarqube配置文件

修改配置文件命令:vim/usr/local/software/sonarqube-5.6.4/conf/sonar.properties

# 数据库用户名、密码

sonar.jdbc.username=root

sonar.jdbc.password=root

 

# 数据库连接地址

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

 

# 数据库连接池配置

sonar.jdbc.maxActive=60

sonar.jdbc.maxIdle=5

sonar.jdbc.minIdle=2

sonar.jdbc.maxWait=5000

sonar.jdbc.minEvictableIdleTimeMillis=600000

sonar.jdbc.timeBetweenEvictionRunsMillis=30000

 

# 限制防问的IP地址(0.0.0.0表示不限制)

sonar.web.host=0.0.0.0

 

# 访问sonar地址的上下文

sonar.web.context=/sonarqube

 

# 访问端口号

sonar.web.port=9090


4、启动SonarQubeWeb服务

执行命令:/usr/local/software/sonarqube-5.6.4/bin/linux-x86-64/sonar.shstart

通过web浏览器查看http://192.168.1.150:9090/sonarqube/


默认管理员,用户名:admin,密码:admin

1.3 sonarqube平台配置

1、安装中文汉化包:

SonarQube默认为英文,我们可以安装SonarQube提供提供了中文插件,以便更好地熟悉使用。把下载好的插件上传到/usr/local/software/sonarqube-5.6.4/extensions/plugins目录,然后重启SonarQube就可以了。


SonarQube的汉化包兼容列表如下:

下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/

SonarQube

6

6.1

6.2

 

 

 

 

sonar-l10n-zh

1.12

1.13

1.14

 

 

 

 

SonarQube

5.4

5.5

5.6

 

 

 

 

sonar-l10n-zh

1.9

1.1

1.11

 

 

 

 

SonarQube

4

4.1

 

 

 

 

 

sonar-l10n-zh

1.7

1.8

 

 

 

 

 

SonarQube

3.1

3.2

3.3

3.4

3.5

3.6

3.7

sonar-l10n-zh

1

1.1

1.2

1.3

1.4

1.5

1.6

 

重启完之后刷新SonarQubehttp://192.168.1.150:9090/sonarqube/


1.4 Maven分析器插件的配置与使用

1、Maven本地库中的settings.xml配置文件中的<profiles></profiles>节点中添加如下配置:

      <profile>         <id>sonar</id>         <activation>            <activeByDefault>true</activeByDefault>         </activation>         <properties>&nnbsp;           <!--Example for MySQL -->            <sonar.jdbc.url>                jdbc:mysql://192.168.1.150:3306/sonarqube?useUnicode=true&characterEncoding=utf8</sonar.jdbc.url>            <sonar.jdbc.username>sonarqube</sonar.jdbc.username>            <sonar.jdbc.password>sonarqube</sonar.jdbc.password>            <!--Optional URL to server. Default value is http://localhost:9090 -->            <sonar.host.url>http://192.168.1.150:9090/sonarqube</sonar.host.url>         </properties>   </profile>     


2、在项目本地pom.xml文件中<plugins></plugins>节点中添加如下配置:

    <plugin>         <groupId>org.codehaus.sonar</groupId>         <artifactId>sonar-maven-plugin</artifactId>         <!-- 版本需要和sonarqube版本一致 -->         <version>5.6.4</version>         <executions>            <execution>                <id>sonar</id>                <phase>site</phase>                <goals>                   <goal>sonar</goal>                </goals>            </execution>         </executions></plugin>


3、使用Maven分析器进行分析:

使用Maven分析器进行分析,命令:

Maven命令:mvn clean install sonar:sonar

Eclipse中执行:clean install sonar:sonar

如果你是第一次运行此命令,看执行日志你会发现它会先下载sonar-runner等插件,看到BUILD_SUCCESS和请求地址表示成功。

成功执行完分析命令后便可到Web Server中查看代码质量分析结果数据。



4、使用sonarqube分析效果图:



 

1.5 学习SonarQube推荐书籍:

1. SonarQube in Action



                --以上为《SonarQube代码质量管理平台安装与使用》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。

                                                                                                                                                                                      ——厚积薄发(yuanxw)


0 0
原创粉丝点击