Java代码质量监控工具Sonar安装

1.  代码质量七宗罪

Sonar是一个代码质量管理系统,它的帮助文档开篇明义,提出了代码质量的七宗罪,总结的比较到位,不妨一看:

1.        Bug和隐藏Bug(Bugs and Potential Bugs

2.        违反编码规范(Coding Standards Breach

3.        复制粘贴(Duplications

4.        缺乏单元测试(Lack of Unit Tests

5.        恶劣的复杂度分布(Bad Distribution of Complexity

6.        意大利面式设计(Spaghetti Design

7.        注释不足或过多(Not Enough or Too Many Comments

2.  安装Sonar服务器

首先看一下sonar对安装环境的需求,见文档:

http://docs.codehaus.org/display/SONAR/Requirements

2.1. 安装JRE

不再详述。

2.2. 安装数据库

Sonar支持MySQL、Oracle、PostgreSQL、SQL Server等多种数据库,本文选取MySQL。

参考文档:http://docs.codehaus.org/display/SONAR/Installing

2.3. 配置数据库

Sonar启动前需要数据库中有特定的用户名和数据库。以下为MySQL的配置脚本。


# https://github.com/SonarSource/sonar-examples/tree/master/scripts/database/mysql


#Create SonarQubedatabase and user.

#


# Command: mysql-u root-p
< create_database.sql


#


CREATE DATABASE sonarCHARACTER SET utf8COLLATE
utf8_general_ci;


CREATE USER‘sonar‘ IDENTIFIED BY‘sonar‘;


GRANT ALL ON sonar.* TO‘sonar‘@‘%‘
IDENTIFIED BY‘sonar‘;


GRANT ALL ON sonar.* TO‘sonar‘@‘localhost‘
IDENTIFIED BY‘sonar‘;


FLUSH PRIVILEGES;

2.4. 下载并配置sonar

本文下载的是SonarQube 3.7.4 LTS,不需要下载其他工具。

修改sonar-3.7.4/conf/sonar.properties文件中的sonar.jdbc.url、sonar.jdbc.username和sonar.jdbc.password属性,具体要参照前面mysql服务器的配置。

本文中设置的值是:

sonar.jdbc.username:                       sonar

sonar.jdbc.password:                       sonar

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

sonar.properties配置文件还可以设置其他项,比如HTTP监听端口,暂时保持默认。

2.5. 启动sonar服务器

执行sonar-3.7.4/bin/目录下指定操作系统的脚本,启动sonar。

Sonar启动后:

(1)会连接mysql服务器,并在sonar数据库中建立相关的表格;

(2)启动一个http服务器,监听端口为9000,当然这个端口号是可以配置的。

当然,Sonar也可以作为服务安装到操作系统中,本文不再描述。

2.6. 登录服务器

通过浏览器登录sonar服务器,可以对sonar进行配置、安装插件等。

URL地址默认是http://{sonar_server_ip}:9000。

默认的用户名和密码是admin/admin。

本文保持sonar的默认配置。

3.  利用maven向sonar服务器提交分析任务

可以有多种方法向sonar提交分析任务,本文利用maven。注意sonar 3.7.4只支持maven3.1版本。

3.1. 修改maven的settings.xml文件。

参考文档:http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+Maven


<profile>

<properties>

<sonar.jdbc.url>jdbc:mysql://192.168.150.11:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>

<sonar.jdbc.username>sonar</sonar.jdbc.username>

<sonar.jdbc.password>sonar</sonar.jdbc.password>

<sonar.host.url>http://192.168.150.11:9000</sonar.host.url>

</properties>

</profile>

</profiles>

3.2. 修改pom.xml文件,以增加mysql驱动


<build>

<extensions>

<extension>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.24</version>

</extension>

</extensions>

</build>

3.3. 提交分析任务

参考文档:http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven

执行以下maven命令:


mvn clean install

mvn sonar:sonar

注意sonar:sonar必须单独执行。如果把sonar:sonar和其他target混在一起,比如mvn clean install sonar:sonar,可能导致不可预期的问题。

3.4. 查看分析结果

通过浏览器登录sonar服务器,查看分析结果。

Java代码质量监控工具Sonar安装,布布扣,bubuko.com

时间: 2024-11-03 21:38:13

Java代码质量监控工具Sonar安装的相关文章

Java代码实现APP普通安装卸载和静默安装卸载

两者差异 执行普通安装.卸载,将会弹出确认安装.卸载的提示框,与在文件管理器中打开APK文件实现安装.卸载相同. 执行静默安装.卸载,正常状态下,前台无任何反应,APP在后台完成安装和卸载.该功能一般也被称为"后台安装". 普通安装 核心代码: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.fromFile(new File(apkPath)), "application/

怎样编写高效java代码

代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友提出宝贵的意见. 代码质量所涉及的5个方面,编码标准.代码重复.代码覆盖率.依赖项分析.复杂度分析.这5方面很大程序上决定了一份代码的质量高低.我们分别来看一下这5方面: 编码标准:这个想必都很清楚,每个公司几乎都有一份编码规范,类命名.包命名.代码风格之类的东西都属于其中. 代码重复:顾名思义就是重复的代

sonar的安装与代码质量检测实例

说明:sonar依赖数据库. mysql优化 1.笔者使用的是mysql数据库.首先对mysql做简单的优化配置. [[email protected] bin]# cat /etc/my.cnf [mysqld] max_allowed_packet=10M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent

用Sonarqube检查和度量代码质量——安装sonarqube

以前关注点一直在怎么提高应用程序的质量,没太在意代码级别的质量.最近因为某些因素的推动,需要关注到代码级别的质量去,把质量工作尽量往前推,也符合质量控制的原则.  试用了一下sonarqube(老版本的叫sonar,ww.sonarqube.org),对代码的提升的确有很多的作用,sonarqube能从7个维度来对代码质量进行度量.多大的作用,大家实践下就很容易看出来.尤其是建议大家把rules里面的说明和例子都好好看看,对以后自己写代码的时候,质量提高有很大好处. Sonarqube安装:  

基于docker搭建sonar代码质量检测平台

最近有点忙,好久不写博文了,今天听一个同事说之前他们的代码review都是人工来弄的,这多累,于是我赶紧搭建一个sonar代码质量检测平台给大家用用 docker环境搭建什么的就不说了.网上很多,直接上核心命令 第一条是docker 运行一个pgsql 第二条是docker 运行一个sonar docker run -d --name pgdb -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -v /data/pgdata:/var/lib/p

ant+sonar+jacoco代码质量代码覆盖率扫描

使用ant构建的java web项目如何做sonar代码质量扫描?以下就是实际遇到并成功使用的案例一.做sonar扫描的准备工作    1.给web项目增加build.xml构建脚本.    2.下载jar包:jacocoant.jar:sonar-ant-task-2.2.jar    3.搭建一个sonar服务器二.在build.xml中编写jacoco和sonar的脚本 案例的build.xml脚本 <?xml version="1.0" encoding="UT

IDEA中关闭sonar代码质量检测

笔者在IDEA中禁用了SonarLint等各种配置,还是无效,后来在网上找到说是插件的bug, There was a bug in SonarLint for IntelliJ that prevented the configuration to be properly saved. It was fixed in the latest version 2.3.2: https://jira.sonarsource.com/browse/SLI-106 About the performan

Windows+java+jenkins+maven+ant+sonar+sonar-runner安装部署技术手册

1.安装和配置JAVA的jdk环境 到oracal网站http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,下载java的jdk安装包,如:jdk-7u55-windows-x64.exe 安装jdk-7u55-windows-x64.exe,默认下一步即可(安装路径可以自定义). 配置环境变量: 右击"我的电脑"-->"属性",在弹出的"

Lombok 安装、入门 - 消除冗长的 java 代码(转)

前言:    逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下.    lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码.特别是相对于 POJO,光说不做不是我的风格,先来看看吧. lombok 的官方网址:http://projectlombok.org/ lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考.在这里我就不扯太多,先来看一下 l