SonarQube 平台搭建
1. 前期准备
① 环境
jdk 1.8 配置(见其他随笔)
MySQL 5.7(见其他随笔)
② 工具下载
sonarqube 下载 <链接:https://pan.baidu.com/s/1pDMgIDnXccDi305WHDWfJQ 密码:8w0n>
SonarQube+Scanner下载 <链接:https://pan.baidu.com/s/1xWJtYOIFQSA4WMzHrr5j-Q 密码:68mm>
2. 安装
① sonarqube解压到指定文件夹 <D:\sonarqube-7.3>
② 启动StartSonar(对应win 64bit)
打开D:\sonar\sonarqube-5.3\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat
③ 启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。
3. 配置
① MySQL中,新建数据库prsonar
CREATE DATABASE prsonar;
② 创建 test 用户并进行授权
CREATE USER 'test'@'localhost' IDENTIFIED BY ''; // 创建用户并设置密码
// username 为创建的用户名
host为对应的主机地址,本地就是localhost
password为设置的密码 GRANT ALL ON *.* TO 'test'@'localhost'; //对用户进行授权操作
③ 修改SonarQube配置文件,添加Mysql相关配置
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=test // 刚刚创建的sonarQube用户
sonar.jdbc.password=123456 // 创建用户对应的密码
sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8
4. 重新启动sonar服务
① 双击StartSonar.bat文件,重新启动【配置mysql 启动时间会比较久】
② 浏览器打开 http://localhost:9000
③ 登陆
初始用户名:admin
初始密码:admin
如下图,登陆成功
5. 使用
① 中文插件安装
github地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
选择对应版本下载后,放置到<D:\sonarqube-7.3\extensions\plugins> 路径下,重启sonar 即可。
中文显示sonar,但还是不推荐,有些翻译的并不标准
② maven的集成
修改 maven <D:\apache-maven-3.5.4\conf\settings.xml>
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://loaclhost:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
20 <!--其中sonar.host.url 值就是 上文启动的sonar 服务器地址。-->
③ build 项目代码 - 代码扫描
maven项目中pom.xml目录下,执行
mvn clean install sonar:sonar
扫描会有一段时间 【maven 仓库的地址:C:\Users\用户名\.m2\repository】
④ 查看扫描结果显示
显示BUILD SUCCESS 执行成功。
6. 结果分析
① <http://localhost:9000/projects> 查看project显示
② 查看问题显示,根据问题描述,进行代码优化
PS:扫描规则的配置:
Rules(代码规则)中,language(语言)下选择java或其他语言,规则可以选择性的关闭或者激活。
---------------------------------------------------------------------------------*************分界线*************----------------------------------------------------------------------
问题汇总:
1. 问题描述:
双击StartSonar.bat后,控制台打开后,自动关闭,无法启动成功,sonar.log 报错“Error: missing `server' JVM at `D:\jre1.8.0_144\bin\server\jvm.dll'.”
解决办法:
修改PATH变量,直接将<%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;>放到PATH变量的最前面,重新打开后,问题解决。
2. 问题描述:
双击<StartSonar.bat> 提示“另一程序正在使用此文件”
解决办法:
由于之前启动的sonar进程未关闭,有冲突;打开资源管理器(ctrl+shift+esc),杀掉java进程重新启动,问题解决。
3. 问题描述:双击<StartSonar.bat> ,dos窗口启动之后闪退
sonar.log “exception caught on transport layer [[id: 0x6b97e495, L:/127.0.0.1:49426 - R:/127.0.0.1:9001]], closing connectionjava.io.IOException: 远程主机强迫关闭了一个现有的连接。”
web.log 如下:
解决办法:
由于配置文件中,数据库名称忘记修改了,实际应该为prsonar
4. 问题描述:
执行sonar,控制台报错:
“[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project yyt-uiautotest: There are test failures.
解决办法:
初步断定是与pom.xml中配置信息有关,换其他工程,问题解决。
SonarQube 平台搭建的更多相关文章
- SonarQube 平台搭建代码审查平台步骤
SonarQube 平台1.下载包,安装启动2.在sonar.properties 配置mysql数据库的sonar.jdbc.username=sonarsonar.jdbc.password=so ...
- 【iOS】Jenkins Gitlab持续集成打包平台搭建
Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...
- hadoop伪分布式平台搭建(centos 6.3)
最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...
- LNMP平台搭建---MySQL安装篇
在前两篇中,安装了一个基本的Web服务器,但是只能提供静态网页查看,要做成动态网站,就必须要数据库或其他编程语言支持了,这里先介绍MySQL数据库的安装. MySQL是一个开源的数据库,在互联网行业应 ...
- 基于Moodle的IT课程辅助教育平台搭建
基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- LNMP平台搭建---Nginx安装篇
在上一篇博文<LNMP平台搭建---Linux系统安装篇>中,我们安装了CentOS版本的Linux操作系统,现在,我们来安装一个Web服务器,大标题写着LNMP,其中的N就是Nginx, ...
- LNMP平台搭建---Linux系统安装篇
在互联网网站开发领域,有一个名词,大家一定不陌生,那就是LAMP,经典的Web服务器环境,由Linux+Apache+MySQL+PHP组成,,后来,一个名叫Nginx的Web服务器开源出来了,因其更 ...
- Storm on Yarn :原理分析+平台搭建
Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiat ...
随机推荐
- python对象序列化或持久化的方法
http://blog.csdn.net/chen_lovelotus/article/details/7233293 一.Python对象持久化方法 目前为止,据我所知,在python中对象持久化有 ...
- 编程算法 - 和为s的两个数字 代码(C)
和为s的两个数字 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个递增排序的数组和一个数字s, 在数组中查找两个数, 使得它们的和正好是 ...
- Linux下配置两个或多个Tomcat启动
Linux下配置两个或多个Tomcat启动 (2012-08-14 11:59:31) 转载▼ 标签: 杂谈 分类: linux_tomcat 步骤如下: (1)修改/etc/profile文件.添加 ...
- JSON.parse 的用法,在js中用的。也是反序列化用法。
参数 text 必需. 一个有效的 JSON 字符串. reviver 可选. 一个转换结果的函数. 将为对象的每个成员调用此函数. 如果成员包含嵌套对象,则先于父对象转换嵌套对象. 对于每个成员,会 ...
- Pushlet后台推送
1.Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件:服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的 ...
- rsync权限操作
rsync对目的端权限如果不使用 -a 或者-p -a=-rlptgoD 目的端的目录和文件权限不会改变 同步过程中改变目录和文件权限用法: rsync -rltDvP --chmod=Dugo= ...
- C语言基础(15)-多文件编译
一.头文件的使用 如果把main函数放在第一个文件中,而把自定义函数放在第二个文件中,那么就需要在第一个文件中声明函数原型.如果把函数原型包含在一个头文件里,那么就不必每次使用函数的时候都声明其原型了 ...
- 基于OAuth2.0的统一身份认证中心设计
1. 引言 公司经历多年发展后,在内部存在多套信息系统,每套信息系统的作用各不相同,每套系统也都拥有自己独立的账号密码权限体系,这时,每个人员都需要记住不同系统的账号密码,人员入职和离职时,人事部门都 ...
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
//邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@ ...
- linux mount-umount命令常用记录
每次挂在u盘都忘记,这次记录下. umount命令: 必杀:umount -l /dev/sda1 (有时候卸载不能卸,加-l(不是1,是小写字母l)参数,表示在设备不忙时卸载设备,就可成功卸载设备) ...