SonarQube是神马
   1.SonarQube(又叫Sonar)是对代码进行静态检测的开源平台,利用这个工具可以发现我们代码里各种隐藏的Bug和潜在的问     题,在团队协作的开发模式中可以更好的控制代码质量。
   2.支持多种平台(Windows、Linux)和多种开发语言(java、C#、JavaScript、PHP等),并可以和Jekins、JIRA等多种外部工具和IntelliJ IDEA等开发工具无缝集成。
   3.可视化界面,提供各种维度的质量查询和分析。
如何使用
准备工作
- 下载软件SonarQubehttps://www.sonarqube.org/downloads/
 规则插件checkstylehttps://github.com/checkstyle/sonar-checkstylepmdhttps://github.com/SonarQubeCommunity/sonar-pmdfindbugshttps://github.com/SonarQubeCommunity/sonar-findbugs
 汉化插件sonar-l10n-zh-masterhttps://github.com/SonarQubeCommunity/sonar-l10n-zh
 本地扫描插件sonar-runner-dist-2.4http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/
 以上插件均是源码 需要下载后自行编译
- 所需环境JDK1.7或以上MavenMysql
- 配置 
 a.- sonarqube\conf配置- sonar.properties内容123sonar.jdbc.username=sonarsonar.jdbc.password=sonarsonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance- b.mysql 配置 - 在mysql管理器中执行如下脚本创建数据库及mysql用户 12345CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;CREATE USER 'sonar' IDENTIFIED BY 'sonar';GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';FLUSH PRIVILEGES;
- mysql max_allowed_packet配置
 路径- C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
 设置- max_allowed_packet=101943040
 
- 插件编译 安装
 分别编译下载的插件,去掉snapshort标记,放入插件目录下sonarqube-6.4\extensions\plugins
- 启动
 至此,启动mysql,启动sonarqube,本地访问http://localhost:9000/
 可看到管理界面
 登录名\密码admin\admin
扫描配置
- maven扫描 配置- maven配置文件添加节点123456789101112131415161718<profile><id>sonar</id><activation><activeByDefault>true</activeByDefault></activation><properties><sonar.jdbc.url><![CDATA[jdbc:mysql://127.0.0.1:3306/sonar]]></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.jdbc.maxWait>50000</sonar.jdbc.maxWait><sonar.jdbc.minEvictableIdleTimeMillis>600000</sonar.jdbc.minEvictableIdleTimeMillis><sonar.jdbc.timeBetweenEvictionRunsMillis>30000</sonar.jdbc.timeBetweenEvictionRunsMillis><sonar.host.url>http://localhost:9000</sonar.host.url></properties></profile>- 执行maven命令 - mvn sonar:sonar可扫描项目并上传质量报告
- sonar-runner扫描配置
 a.环境变量配置
 系统环境变量12SONAR_RUNNER_HOME D:\Java\sonar-runner-2.4Path 追加 ;%SONAR_RUNNER_HOME%\bin;- b.sonar-runner.properties配置文件 12345678910111213141516171819202122232425262728#Configure here general information about the environment, such as SonarQube DB details for example#No information about specific project should appear here#----- Default SonarQube serversonar.host.url=http://localhost:9000#----- PostgreSQL#sonar.jdbc.url=jdbc:postgresql://localhost/sonar#----- MySQLsonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8#----- Oracle#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE#----- Microsoft SQLServer#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor#----- Global database settingssonar.jdbc.username=sonarsonar.jdbc.password=sonar#----- Default source code encodingsonar.sourceEncoding=UTF-8#----- Security (when 'sonar.forceAuthentication' is set to 'true')sonar.login=adminsonar.password=admin- c、本地项目配置文件 项目根目录 
 sonar-project.properties配置文件123456789101112sonar.projectKey=projectKeysonar.projectName=projectNamesonar.projectVersion=1.0# Set modules IDssonar.modules=projectmodules# Modules inherit properties set at parent levelsonar.sources=srcsonar.sourceEncoding=UTF-8sonar.language=javasonar.java.binaries=target# By default, the base directory for a module is <current_dir>/<module_ID>.- 至此 使用命令行进入到项目根目录 
 输入命令- sonar-runner可以完成项目的扫描和上传报告
参考
https://zhuanlan.zhihu.com/p/22926742
http://blog.csdn.net/xiajian2010/article/details/22983825
http://www.cnblogs.com/parryyang/p/6270402.html