Sonar服务器搭建

Sonar概述

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

——摘抄自:http://www.ibm.com/developerworks/cn/java/j-lo-sonar/

安装JDK

为了保证稳定还是选择使用JDK7

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

下载到服务器后,按如下命名执行:

 cd /opt
mkdir java
mv ~/jdk-7u71-linux-x64.tar.gz /opt/java
cd /opt/java
tar zxvf jdk-7u71-linux-x64.tar.gz
ln -s jdk1..0_71/ jdk #做软链,方便之后升级
ls -lht #查看软链
vim ~/.bash_profile
#添加如下内容:
#!/bin/bash
export JAVA_HOME=/opt/java/jdk
export PATH=/opt/java/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin source ~/.bash_profile
cp ~/.bash_profile /etc/profile.d/java.sh

执行完后,使用

java -version 验证是否配置成功;

客户端安装配置Maven

过程很简单,与JDK类似,具体如下:

download:http://maven.apache.org/download.cgi

 mkdir /opt/maven
mv ~/apache-maven-3.2.-bin.tar.gz /opt/maven
cd /opt/maven
tar zxvf apache-maven-3.2.-bin.tar.gz
ln -s apache-maven-3.2. apache-maven
vim ~/.bash_profile
#添加如下内容:
export M2_HOME=/opt/maven/apache-maven-3.2.
export PATH=$M2_HOME/bin:$PATH source ~/.bash_profile

执行完毕后,使用 mvn -version 验证是否配置成功;

安装Sonar

download:http://www.sonarqube.org/downloads/

下载到安装包后,使用unzip将其解压到/opt/sonar目录下,到 /opt/sonar/sonarqube-4.5.2/bin/linux-x86-64目录下,

执行:sh sonar.sh start

启动sonar,访问:192.168.11.234:9000

可出现如下画面,说明sonar已安装成功,

配置MySQL

Sonar虽然自带了数据库,但不推荐生产环境使用,我们还是使用MySQL,MySQL服务器在远端(假设IP为192.168.11.212),与Sonar服务器分离,具体配置如下所示:

 CREATE USER sonar@'192.168.11.234';
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

配置Sonar

配置完MySQL后,需要修改Sonar的配置文件,具体操作如下:

 cd /opt/sonar/sonarqube-4.5./conf
vim sonar.properties
# 只需修改username,password和url即可
sonar.jdbc.username=sonar
sonar.jdbc.password=password
sonar.jdbc.url=
jdbc:mysql://192.168.11.212:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

配置完成后,到bin目录下执行 sh sonar.sh restart,重启Sonar,再次打开界面,即可看到数据库已配置成功;

客户端Maven执行Sonar扫描

在自己开发环境下Maven的配置文件settings.xml文件中,添加如下内容:

 <profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://192.168.11.212:3306/sonar?useUnicode=true&amp;characterEncoding=utf8&amp;rewriteBatchedStatements=true&amp;useConfigs=maxPerformance</sonar.jdbc.url>
<sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>password</sonar.jdbc.password>
<sonar.host.url>http://192.168.11.234</sonar.host.url>
</properties>
</profile>

之后cd到自己的项目根目录,执行:mvn sonar:sonar,就可以完成sonar的扫描了,它会自动把结果扫描保存到mysql,执行完成之后,登陆sonar的页面,即可看到我们刚刚生成的报告;

具体如下图所示:

TODO

生产环境将Sonar部署到Tomcat中;

参考

http://www.ibm.com/developerworks/cn/java/j-lo-sonar/

Sonar服务器搭建的更多相关文章

  1. 利用Sonar定制自定义JS扫描规则(一)——sonar环境搭建

    接触sonar已经有段时间了,最早是在一个项目组里面听到这个框架,后来在公司持续集成活动的推动下,也逐渐学习了sonar的具体功能.sonar集成了findbugs,pmd,checkstyle各种静 ...

  2. Git本地服务器搭建及使用详解

    Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...

  3. ​Linux下的SVN服务器搭建

    ​Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...

  4. 版本控制-svn服务器搭建和常用命令(centos 6.3)

    Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...

  5. 版本控制-Git服务器搭建和常用命令使用

    Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...

  6. JAVA服务器搭建之问题总结

    负责维护公司产品的web服务器搭建与维护,最近遇到一下状况,今天在这里简单总结一下,希望对于刚刚一些刚入行的小伙伴有所帮助,避免再走弯路. 第一点:Tomcat内存设置: 一.常见的Java内存溢出有 ...

  7. 烂泥:Postfix邮件服务器搭建之虚拟用户配置

    virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...

  8. Centos vsftpd服务器搭建

    Centos vsftpd服务器搭建 时间:2016-07-18 1.最为简单的vsftpd服务器搭建 1.安装vsftpd 1.yum 安装 yum install vsftpd 2.rpm文件安装 ...

  9. Linux下的SVN服务器搭建

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

随机推荐

  1. 前端中的事件循环eventloop机制

    我们知道 js 是单线程执行的,那么异步的代码 js 是怎么处理的呢?例如下面的代码是如何进行输出的: console.log(1); setTimeout(function() { console. ...

  2. Reboot

    目标是将浏览器的预设样式设为一致 Native font stack  本机字体堆栈 由于padding 及 border 会改变元素在运算后的宽度 此时的实际宽度为: width+左右padding ...

  3. elementary os变成mac风(笔记)

    sudo add-apt-repository ppa:philip.scott/elementary-tweaks && sudo apt-get update sudo apt-g ...

  4. Nginx + Tomcat7 + redis session一致性问题

    Nginx 作负载均衡时,由于是每次都需要把请求分发到不同的机器,同一个用户在一台机器上创建了 session,下一次的请求很有可能会转发到另外一台机器,会造成 session 丢失.我们可以使用 R ...

  5. poj 1655 Balancing Act(找树的重心)

    Balancing Act POJ - 1655 题意:给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的. /* 找树的重心可以用树形dp或 ...

  6. ubuntu命令错误集

    1.在ubuntu命令行使用rz从windows传输文件时出现乱码 解决方法:使用 rz -e    选项进行传输,一般小文件传输不用加 -e 选项,大文件传输需要.

  7. AT2402 Dam

    传送门 考虑到一个很显然的事实:水是逃不掉的,一定要接的 所以我们就可以得到一个结论:如果当前的水温比上次低,就混合起来(因为水是逃不掉的),如果高就保留(因为我可以将前面的全部抛弃,只取这个高的) ...

  8. ELK系列(5) - Logstash怎么分割字符串并添加新的字段到Elasticsearch

    问题 有时候我们想要在Logstash里对收集到的日志等信息进行分割,并且将分割后的字符作为新的字符来index到Elasticsearch里.假定需求如下: Logstash收集到的日志字段mess ...

  9. 自定义滚动条插件 mCustomScrollbar 使用介绍

    引用有心的学士笔记 http://www.wufangbo.com/mcustomscrollbar/ http://www.jianshu.com/p/550466260856 官网地址 http: ...

  10. jquery——解决鼠标移入移出导致盒子不停移动的bug

    使用mouseover().mouseout()时会出现这样一种情况,鼠标快速多次移入移出后这个盒子会在鼠标不动后继续运动 代码如下: <!DOCTYPE html> <html l ...