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.  安装Sonarserver

首先看一下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启动前须要数据库中有特定的username和数据库。下面为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属性,详细要參照前面mysqlserver的配置。

本文中设置的值是:

sonar.jdbc.username:                       sonar

sonar.jdbc.password:                       sonar

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

sonar.properties配置文件还能够设置其它项。比方HTTP监听port,临时保持默认。

2.5. 启动sonarserver

运行sonar-3.7.4/bin/文件夹下指定操作系统的脚本。启动sonar。

Sonar启动后:

(1)会连接mysqlserver,并在sonar数据库中建立相关的表格。

(2)启动一个httpserver,监听port为9000,当然这个port号是能够配置的。

当然,Sonar也能够作为服务安装到操作系统中,本文不再描写叙述。

2.6. 登录server

通过浏览器登录sonarserver,能够对sonar进行配置、安装插件等。

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

默认的username和password是admin/admin。

本文保持sonar的默认配置。

3.  利用maven向sonarserver提交分析任务

能够有多种方法向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. 查看分析结果

通过浏览器登录sonarserver,查看分析结果。

Java代码质量监控工具Sonar安装相关推荐

  1. 提高 Java 代码质量

    高质量代码中往往缺陷更少!确保高的 Java 代码质量有两个步骤:尽早并经常地编写各个层次的测试用例,以及持续的监测质量状况.那么我们又该如何实践呢?本专题汇集了大量来自代码质量专家们的专业经验.最佳 ...

  2. java检测工具_常用Java代码质量检测评估工具

    常用Java代码质量检测评估工具 1. PMD from http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题: 可能的bug--try/ca ...

  3. 从 FingBugs的错误来看JAVA代码质量

    从 FingBugs的错误来看JAVA代码质量(一)http://scholers.iteye.com/blog/1107452 从 FingBugs的错误来看JAVA代码质量(二)http://sc ...

  4. java 代码解析工具_改善 Java 代码质量的工具与方法

    原标题:改善 Java 代码质量的工具与方法 我们可能见过上面的有关代码质量的图片,究竟如何衡量一段代码好坏? 代码质量是什么?为什么它很重要? 作家通过他的著作来讲述了一个清晰的.令人信服的故事.他 ...

  5. SpringCloud工作笔记076--- CheckStyle插件提高java代码质量

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 这个是eclipse中的,在idea中也有这个插件,需要的时候去看看装上吧. 国外的客户一般比较严谨,这些工作,甚至自己 ...

  6. java代码质量 圈复杂度,代码圈复杂度(Cyclomatic Complexity,CC)和Oclint工具 介绍...

    什么是代码圈复杂度 圈复杂度是一种度量程序复杂度的方法,由 Thomas McCabe 于 1976年定义,用来衡量一个模块判定结构的复杂程度,数量上表现为独立路径条数,即合理的预防错误所需测试的最少 ...

  7. java代码扫描项目,sonar代码扫描实现(基于java-maven)

    Sonar介绍 Sonar是一个用于代码扫描检测的开放平台.可以实现对不同语言(java.python.php.C++.C#等等)的项目代码进行分析,同时可以集成不同的测试工具.代码分析工具,以及持续 ...

  8. 代码 安全扫描 Sonar 安装使用

    本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017      依赖包: 1 ...

  9. Java代码质量检测评估工具-Findbugs

    现在在线安装有问题 使用eclipse3.7  这种情况大家使用离线安装吧! 一.简介 Findbugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

最新文章

  1. Mozilla停止对Firefox Hello的支持(采访)
  2. 代码分析:NASM源码阅读笔记
  3. sftp shell 批量上传文件_shell脚本进行sftp、ftp文件批量上传与下载
  4. java 对话框 位置_JAVAJOptionPane对话框的几种方法
  5. python 求list最小值的索引_【挑战自学Python编程】第六天:前五天都学了啥?
  6. 简朴的生活、高贵的灵魂是人生的至高境界。——杨绛
  7. flask高级编程 LocalStack 线程隔离
  8. P3295 [SCOI2016]萌萌哒(DP+倍增)
  9. Namomo Spring Camp Div2 Week1 - 第二次打卡
  10. Arcgis自动编号实现
  11. Chapter 1 Securing Your Server and Network(1):选择SQL Server业务经理
  12. 2020年程序员年薪、婚恋、跳槽等报告出炉,说的是你吗?
  13. 行人重识别论文阅读12-Bi-directional Exponential Angular Triplet Loss for RGB-Infrared Person ReID
  14. 抖音只能上下滑动吗_仿抖音上下滑动分页视频
  15. android: 禁止多点触控
  16. JavaScript(基础知识)
  17. 电脑硬件升级完全解决方案2
  18. audio_policy.conf文件:AUDIO_DEVICE_IN_REMOTE_SUBMIX含义
  19. w7设置双显示器_Win7双显示器怎么设置方法 Win7双显示器设置方法
  20. Android中怎么重新启动APP或系统

热门文章

  1. 抓糗百数据和图片的Python爬虫
  2. 一份详尽的IPC$***资料
  3. 2012年最后一天,终于盼到公司发报卡了
  4. 2种方法帮你恢复Cisco路由器的密码
  5. 第一弹:超全Python学习资源整理(入门系列)
  6. android线程通信方式,Android 主线程和子线程通信问题
  7. c语言while计算机编写,计算机等级考试二级C语言(while与dowhile循环)
  8. java mockserver搭建_搭建Mock Server
  9. Elastic-Job中的SimpleJob
  10. 设计 Redis Key