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. 安装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
|
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&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&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安装的更多相关文章
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...
- 拔高你的Java代码质量吧:推荐使用枚举定义常量(转)
提高你的Java代码质量吧:推荐使用枚举定义常量 一.分析 常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量.不过,在1.5版之后有了改进,即新增了一 ...
- java代码如何在没有安装JDK的Windows下运行
java代码如何在没有安装JDK的Windows下运行? 对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre.jre版本.jre在哪里下载.如何用jre启动Java应用等 ...
- Linux下SonarQube代码质量平台的安装和使用方法
Sonar简介: Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Java ...
- 代码质量检测-Sonar
一. Sonar简介 sonarqube系统是一个代码质量检测工具 由以下四个组件组成(https://docs.sonarqube.org/display/SONAR/Architecture+an ...
- 提高Java代码质量的Eclipse插件之Checkstyle的使用具体解释
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发者遵守某些编码规范的工具.它可以自己主动化代码规范检查过程.从而使得开发者从这项重要可是枯燥的任务中解脱出来. Ch ...
- 代码检查工具 Sonar 安装&使用
本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017 依赖包: 1 ...
- Java代码质量度量工具大阅兵
FindBugs FindBugs, a program which uses static analysis to look for bugs in Java code. It is free so ...
- 推荐个Java代码质量检测的利器 —— FindBugs
一.下载 插件的下载地址(sourceforge):FindBugs-Eclipse插件 二.安装 Eclipse插件的安装,就不多说了. 三.使用 1.找一个Project,选中它(也可以针对某个P ...
随机推荐
- 028 IDEA中下载与上传程序
在学习的时候,更多的时候在使用eclipse,但是在使用过程中,IDEA有时候使用起来更加方便轻松. 关于,在使用过程中的一些常识,这里谢谢写写文档. 一:拉代码 1.说明 在第一次开始项目的时候,需 ...
- 总结TCP为什么三次握手四次挥手
为什么三次握手,而不是两次或者四次五次? 2019/3/4更新: 在阅读了很多技术博客后,发先大家对为什么三次握手不是两次众说纷纭:我觉得说的最好的是英文文章对TCP的解读.TCP和UDP的区别就是可 ...
- HDFS格式化namenode后启动集群datanode不启动
这是因为格式化namenode之后,namenode节点中VERSION的ClusterID会改变!!! 解决办法: 1.打开namenode节点的hdfs-site.xml文件,查看你的nameno ...
- es 模块的基础知识,深度了解
// 一模块的基础知识 /** * export :用于模块输出的出口 * import :文件引入的入口 */ // 1,第一种方式使用export方式输出 var a = 'a'; var b = ...
- Java 之 Web前端(二)
1.Cookie (客户端所拥有) a.含义:服务器给浏览器的甜点 b.语法: //创建Cookie Cookie cookie = new Cookie("name", &quo ...
- HDU 1257 最少拦截系统 【贪心】
<题目链接> 题目大意: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度 ...
- POJ 1328 安装雷达 (贪心)
<题目链接> 题目大意: 以x轴为分界,y>0部分为海,y<0部分为陆地,给出一些岛屿坐标(在海中),再给出雷达可达到范围,雷达只可以安在陆地上,问最少多少雷达可以覆盖所以岛屿 ...
- 大数据技术 - 分布式文件系统 HDFS 的设计
本章内容介绍下 Hadoop 自带的分布式文件系统,HDFS 即 Hadoop Distributed Filesystem.HDFS 能够存储超大文件,可以部署在廉价的服务器上,适合一次写入多次读取 ...
- SpringMVC(十六) 处理模型数据之SessionAttributes
@SessionAttributes原理 默认情况下Spring MVC将模型中的数据存储到request域中.当一个请求结束后,数据就失效了.如果要跨页面使用.那么需要使用到session.而@Se ...
- shell编程第二天