Sonar服务器搭建
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&characterEncoding=utf8&rewriteBatchedStatements=true&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服务器搭建的更多相关文章
- 利用Sonar定制自定义JS扫描规则(一)——sonar环境搭建
接触sonar已经有段时间了,最早是在一个项目组里面听到这个框架,后来在公司持续集成活动的推动下,也逐渐学习了sonar的具体功能.sonar集成了findbugs,pmd,checkstyle各种静 ...
- Git本地服务器搭建及使用详解
Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- 版本控制-svn服务器搭建和常用命令(centos 6.3)
Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
- JAVA服务器搭建之问题总结
负责维护公司产品的web服务器搭建与维护,最近遇到一下状况,今天在这里简单总结一下,希望对于刚刚一些刚入行的小伙伴有所帮助,避免再走弯路. 第一点:Tomcat内存设置: 一.常见的Java内存溢出有 ...
- 烂泥:Postfix邮件服务器搭建之虚拟用户配置
virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...
- Centos vsftpd服务器搭建
Centos vsftpd服务器搭建 时间:2016-07-18 1.最为简单的vsftpd服务器搭建 1.安装vsftpd 1.yum 安装 yum install vsftpd 2.rpm文件安装 ...
- Linux下的SVN服务器搭建
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
随机推荐
- Net Core 下载图片
直接上代码 string url = https://www.cnblogs.com/images/logo_small.gif; //获取网站当前根目录 string sWebRootFolder ...
- CodeForces 110C 【构造】
思路: 7越多越好,然后从7最多个数枚举过去,判断一下剩下的能不能用4解决就好了: #include <bits/stdc++.h> using namespace std; typede ...
- java解析xml文件练习——通过应用包名获取应用图标即其他信息(基于魅族应用商店)
1.解析包名数据文件(txt文件),并生成包名数组: package jsouphtml; import java.io.BufferedReader; import java.io.File; im ...
- uva 10817(数位dp)
uva 10817(数位dp) 某校有m个教师和n个求职者,需讲授s个课程(1<=s<=8, 1<=m<=20, 1<=n<=100).已知每人的工资c(10000 ...
- 使用pods添加第三方的时候,出现ld: library not found for -lpop
ld: library not found for -lpop 错误,是在使用pods添加第三方的时候,出现的编译错误,同时伴随着的是error: linker command failed with ...
- PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案
首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或 -dauto_prepend_ ...
- 老男孩Day1作业(一):编写登录接口
需求:编写登陆接口1. 用户输入帐号密码进行登陆2. 用户信息保存在文件内3. 用户密码输入错误三次后锁定用户 1)编写思路 编写思路参考下面GitHub链接中的流程图 https://github. ...
- 移动web 的viewport设置注意事项的详细解释 六一快乐=-_-_
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- I/O重定向和管道
一:I/O设备 I/O(Input/Output),即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出. 标准输入(STDIN):0 默认接受来自键盘的输入 标准输出(ST ...
- ProtobufUtils
import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import com. ...