Sonar入门(一):简介

标签: sonar 简介 | 发表时间:2013-09-26 02:24 | 作者:javaACMer
出处:http://blog.csdn.net

什么是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&amp;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
作者:javaACMer 发表于2013-9-25 18:24:25 原文链接
阅读:88 评论:0 查看评论

相关 [sonar 简介] 推荐:

Sonar入门(一):简介

- - CSDN博客研发管理推荐文章
Sonar是一个开源的代码质量管理平台. 它能对代码进行如下7个维度的管理. 使用插件,它可以对20多种语言进行代码质量管理,这其中包括Java,C#,C/C++,PL/SQL等等. 1.下载sonar,地址 http://www.sonarqube.org/downloads/. 通常选取稳定版本下载即可,这是一个zip文件.

Sonar入门(三): Ant集成Sonar

- - CSDN博客研发管理推荐文章
Sonar也支持ant工程的构建,但是相对于maven而言,最大的不足是无法在分析过程中产生单测覆盖率报告. 因此要求用户在ant项目中配置好cobertura/jacoco报告,最后执行sonar构建的时候,根据已经生成的报告进行分析统计. 另外,还需要下载sonar-ant-task-2.0.jar,放到CLASSPATH后者ant/lib目录下.

代码质量检查工具Sonar结合hudson、maven使用

- - CSDN博客研发管理推荐文章
Sonar的安装方式有多种,可以单独安装,也可以结合maven、hudson使用;可以使用自带的内存型数据库,也可以使用自定义的数据库如mysql、oracle等. 本文介绍结合maven和hudson并使用自带的数据库,可以实现sonar的自动监测代码质量变化. 1、  下载sonar-3.0.zip包,以版本v3.0为例.

Flask-Babel 简介

- yinseny - python.cn(jobs, news)
本文有一个格式好看一点,并且有语法高亮的版本放在 readthedocs,欢迎浏览. 本文是原创,不是翻译,不过本文其实是谈翻译的. 话说用 wordpress 的 WYSIWYG 编辑器写这样的文章真痛苦啊,格式一不小心就乱了,本文是用 rst 写成,编译为 html,然后贴到这边来的. 最近用 Flask 给公司做了个小 web 应用,做的时候用英文了,现在要求翻译成中文.

AsciiDoc简介

- dayu - 桃源
AsciiDoc 是一种简单的基于纯文本的文档生成工具, 与它类似的还有 reStructuredText, Markdown. 说是生成文档, 其实它可以将纯文本文件转换成各种类型, 比如:. Man Page (示例). Graphviz 图形 (示例). 使用AsciiDoc进行文档编写最著名的恐怕是Git官方的 Git User’s Manual (我表示对于初学者很难看懂), 这篇博客也是通过AsciiDoc生成, 文后会附上本文的原始代码以便参考..

ABAP简介

- - 博客园_首页
中文名称:高级企业应用编程语言. 英文全称:Advanced Business Application Programming. 德语全称:Allgemeiner Berichtsaufbereitungsprozessor(通用报表预处理器). 概述:一种高级编程语言,起源于20世纪80年代,由德国软件公司SAP开发,主要用作SAP的编程,现行版本为ABAP/4,同时支持面向过程和面向对象.

json简介

- - ITeye博客
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成. 它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集. JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式.

[转]amanda 简介

- - 小鸥的博客
    安装mysql数据库是会发现三个用户 mysql 、postmyql 、amanda,其中amanda是什么呢.   Amanda 是最早出现的开源备份 软件. 它的名字来自Maryland大学. Amanda的意思是高级Maryland 硬盘归档器..   Amanda通过 操作系统上 一些自带的备份工具,例如tar(Unix/linux)、zip(Windows)来实现备份的计划,自动化和跟踪等功能.

[转]HBase简介

- - 小鸥的博客
   Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能. 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表. Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统.

Learning to Rank 简介

- - 博客园_首页
  去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很有意思,也有很大的应用价值. L2R将机器学习的技术很好的应用到了排序中,并提出了一些新的理论和算法,不仅有效地解决了排序的问题,其中一些算法(比如LambdaRank)的思想非常新颖,可以在其他领域中进行借鉴.