Sonar入门(一):简介
什么是Sonar?
Sonar是一个开源的代码质量管理平台。它能对代码进行如下7个维度的管理。
使用插件,它可以对20多种语言进行代码质量管理,这其中包括Java,C#,C/C++,PL/SQL等等。
安装Sonar
1.下载sonar,地址http://www.sonarqube.org/downloads/。通常选取稳定版本下载即可,这是一个zip文件。
2.解压下载的sonar到一个目录。我们称这个解压后的路径为SONAR_HOME
3.进入$SONAR_HOME/bin/${os-version}/,找到sonar.sh,执行./sonar.sh console即可。在windows下是StartSonar.bat。
4.现在进入http://localhost:9000,就看到了界面。默认的登录使用admin:admin
这个时候,Sonar已经运行啦。但是在生产环境是不行的。上面跑起来的只是一个样例,使用的是h2内存数据库。我们可不想重启服务后,生产环境的数据都没了。
配置Sonar数据库
1.首先新建一个数据库。
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on sonar.* to 'sonar'@'%' identified by '你的密码';
flush privileges;
这样就准备好了数据库sonar,并授权给sonar这个用户。
2.找到$SONAR_HOME/conf/sonar.properties。注释掉默认的数据库配置,然后配上自己的数据库信息即可。这里以mysql为例。
# Comment the following line to deactivate the default embedded database.
#sonar.jdbc.url: jdbc:h2:tcp://localhost:9092/sonar
#sonar.jdbc.driverClassName: org.h2.Driver
-------------------
# The schema must be created first.
sonar.jdbc.username: sonarsonar.jdbc.password: sonar #----- MySQL 5.x # Comment the embedded database and uncomment the following line to use MySQL sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
# Optional properties
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
配置好之后,这样所有的数据都会存放到mysql内啦。不用再担心数据问题啦。要添加其他数据库,同理。
把Sonar变为中文
英文看这不方便啊。有2种方法可以将Sonar变为中文界面。
1.用管理员登录后,在Update Center种找到Localization里的Chinese Pack安装就可以了。
2.直接下载http://repository.codehaus.org/org/codehaus/sonar-plugins/l10n/sonar-l10n-zh-plugin/1.6/sonar-l10n-zh-plugin-1.6.jar这个插件jar包到$SONAR_HOME/extensions/plugins内,重启即可。
把Sonar放到JEE容器内
默认的情况下,sonar启动是采用内置的jetty的,为了方便管理,一般在生产环境可以放到JEE容器内,这里就以Tomcat为例了。
Sonar在经过上面几步的配置后,已经满足了基本的需求。接下来就可以进入到$SONAR_HOME/war/内。执行build-war命令。这样就生成了一个sonar.war,把这个war包发布到Tomcat即可。
如何对源码进行检测
1.配置maven的settings.xml,添加一下内容:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000/sonar</sonar.host.url>
</properties>
</profile>
其中的数据库配置以及sonar主机地址都依据实际进行修改即可。
2.在maven项目种执行
mvn clean install
mvn sonar:sonar
3.打开sonar主页,就可以看到结果了。
Sonar与Jenkins的集成。
1.安装jenkins-sonar-plugin到Jenkins内。
2.在Jenkins里的系统配置中,填写Sonar安装信息。
3.在Jenkins的JOB中,配置post-build action中添加上Sonar即可。这样在项目构建后,会自动的执行Sonar分析。并将结果放在首页进行展现。
-- Main.shenyanchao - 2013-09-04
Sonar入门(一):简介的更多相关文章
- GBDT(MART) 迭代决策树入门教程 | 简介
GBDT(MART) 迭代决策树入门教程 | 简介 http://blog.csdn.net/w28971023/article/details/8240756
- jQuery的入门与简介
jQuery的入门与简介<思维导图> <初学者请各位高手指点指点> jQuery是继Prototype之后又一个优秀的JavaScript库,在JavaScript基础上我 ...
- Quartz入门例子简介 从入门到菜鸟(一)
转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039 刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...
- 零元学Expression Design 4 - Chapter 1 入门界面简介
原文:零元学Expression Design 4 - Chapter 1 入门界面简介 Expression Design 是Expression系列里面的一员,更是Blend跟Web的好帮手 而在 ...
- 零元学Expression Blend 4 - Chapter 2 入门界面简介
原文:零元学Expression Blend 4 - Chapter 2 入门界面简介 在这篇教学我将会介绍Expression Blend 4的基本界面,虽然有些网站已经有做了介绍,为了整个教学的完 ...
- [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...
- JAVAEE——SpringBoot入门:简介、微服务、环境准备、helloworld与探究、快速构建项目
一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...
- SpringBoot入门1—简介及helloworld
Spring Boot简介 Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spring引用.你也可以打包你的应用为jar并通过使用java - ...
随机推荐
- 04747_Java语言程序设计(一)_第8章_多线程
例8.1应用程序用Thread子类实现多线程. import java.util.Date; public class Example8_1 { static Athread threadA; sta ...
- qt简单界面更新代码(菜鸟级)(部分代码)
qt简单界面更新代码(菜鸟级)(部分代码)self.timers_1=QtCore.QTimer(self)self.timers_1.timeout.connect(self.min_1)self. ...
- bash的元字符(下)
` "Esc"键正下方键,替换命令 PS1=`command` {} 在当前shell中运行命令 {command1;command2} | 创建命令间的管道 command1 | ...
- 2014 (多校)1011 ZCC Loves Codefires
自从做了多校,整个人都不好了,老是被高中生就算了,题老是都不懂=-=原谅我是个菜鸟,原谅我智力不行.唯一的水题. Problem Description Though ZCC has many Fan ...
- linux TIME_WAIT过多的解决方法
查看TCP状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'查看SOCKET状态:cat /proc/n ...
- eclipse安装Flash Builder 4后变成中文,怎么解决
修改eclipse.ini启动参数: -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.libr ...
- Windows下安装Django及WEB服务启动
如果使用的是 Linux 或 Mac OS X ,系统可能已经预装了 Python .在命令提示符下 (或 OS X 的终端中) 输入python ,如果出现python编辑环境,说明 ...
- HBase配置&启动脚本分析
本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...
- 使用indent命令帮助排版源代码
在写代码时候,特别是在vim中编辑代码时候,你可能会不太注意代码风格问题,比如‘{’符号放在行末还是下一行行首等等, 这样你把自己代码与别人的代码merge时候,就会出现代码风格不一的问题,这里就推荐 ...
- JavaScript权威指南阅读笔记3
第六章 对象 1.首先是先介绍了对象直接量的格式:对象直接量就是1.由若干个名/值对组成的映射表,2名/值对中间由冒号分割,3名值对之间由逗号分割,4整个映射表由花括号括起来.这样就组成了一个对象直接 ...