sonar 检测代码质量实战演示

  • 第一章:sonarqube 的安装与启用
  • ① sonarqube 获取
  • ② sonarqube 配置
  • ③ sonarqube 驱动放置
  • ④ sonarqube 的启动
  • 第二章:sonarqube 报错解决
  • ① Unsupported JDBC driver provider: mysql. 【sonarqube8.0 以后不支持 mysql】
  • ② Directory does not contain JDBC driver: extensions/jdbc-driver/oracle. 【没有找到驱动】
  • ③ SonarQube requires Java 11 to run. 【sonarqube8.0 需要 java11 的支持】
  • ④ 远程主机强迫关闭了一个现有的连接。【sonarqube 数据库驱动版本不匹配】
  • ⑤ 查看 sonarqube 的数据库支持
  • 第三章:sonarScanner 插件的安装与配置
  • ① sonarScanner 获取
  • ② sonarScanner 设置环境变量
  • ③ sonarScanner 配置
  • 第四章:用 sonar 检查代码质量
  • ① 配置
  • ② 运行
  • ③ 查看扫描报告
  • ④ 分析报告问题
  • ⑤ 代码质量评级
  • 第五章:sonar 相关设置
  • ① sonar 管理员登录
  • ② sonar 设置

安装过程主要分为两部分,一个是主程序 sonarqube,一个是 sonarScanner 插件,两个都安装配置好后就可以进行代码扫描了。sonarqube 在配置数据库的过程中会碰到很多问题,第二章专门针对这些问题来进行讲解。

第一章:sonarqube 的安装与启用

① sonarqube 获取

下载地址: 官方网站

② sonarqube 配置

解压后的程序目录下,进入 conf 里的 sonar.properties 来进行配置。

# 指定oracle数据库
sonar.jdbc.url=jdbc:oracle:thin:@10.10.18.70:1521/orcl
# 指定数据库用户名
sonar.jdbc.username=ncc_auto_sonar
# 指定数据库密码
sonar.jdbc.password=1
# 指定端口
sonar.web.port=9000

③ sonarqube 驱动放置

不要忘了把驱动放到

④ sonarqube 的启动

StartSonar 来启动程序,如果闪退了,可以拖到 cmd 里运行,可以看到报错信息,第二章就介绍它的一些常见报错的解决方法。

然后再访问 localhost:9000 就进来了。

第二章:sonarqube 报错解决

① Unsupported JDBC driver provider: mysql. 【sonarqube8.0 以后不支持 mysql】

sonarqube8.0 以后不再支持 mysql,所以我用 oracle 来做适配。

jvm 1    | WrapperSimpleApp: Encountered an error running main: org.sonar.proces
s.MessageException: Unsupported JDBC driver provider: mysql
jvm 1    | org.sonar.process.MessageException: Unsupported JDBC driver provider:mysql
wrapper  | <-- Wrapper Stopped

② Directory does not contain JDBC driver: extensions/jdbc-driver/oracle. 【没有找到驱动】

没有配置数据库驱动。extensions/jdbc-driver/oracle 下面没有放驱动,或是驱动放的不对。

jvm 1    | WrapperSimpleApp: Encountered an error running main: org.sonar.proces
s.MessageException: Directory does not contain JDBC driver: extensions/jdbc-driv
er/oracle
jvm 1    | org.sonar.process.MessageException: Directory does not contain JDBC d
river: extensions/jdbc-driver/oracle
wrapper  | <-- Wrapper Stopped

③ SonarQube requires Java 11 to run. 【sonarqube8.0 需要 java11 的支持】

我原来用的版本是 java8 的。

运行时会提示要用 java11 来运行。

jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.Illega
lStateException: SonarQube requires Java 11 to run
jvm 1    | java.lang.IllegalStateException: SonarQube requires Java 11 to run


java11 官网下载

安装完后配置环境变量后就可以了。

④ 远程主机强迫关闭了一个现有的连接。【sonarqube 数据库驱动版本不匹配】

报这个错感觉我的数据库驱动版本不对,然后换了个驱动就好了。

jvm 1    | 2020.05.22 17:25:35 WARN  app[][o.e.t.TcpTransport] exception caught
on transport layer [Netty4TcpChannel{localAddress=/127.0.0.1:62245, remoteAddres
s=/127.0.0.1:9001}], closing connection
jvm 1    | java.io.IOException: 远程主机强迫关闭了一个现有的连接。


然后再访问 localhost:9000 就进来了。

⑤ 查看 sonarqube 的数据库支持

配置文档里有很多的帮助,我直接搜 oracle 就能查看 oracle 的支持了,还有下面说的驱动放置方法,以及更下面的官方支持网站,如果还有其它的问题,兴许就能在里面找到问题的解决方法。

第三章:sonarScanner 插件的安装与配置

① sonarScanner 获取

获取地址:官网下载
下载完后解压即可。

② sonarScanner 设置环境变量

我们把它根目录下面的 bin 文件夹加入环境变量。


cmd 里输入 sonar-scanner -h 可以看有没有配置对。

③ sonarScanner 配置

在这个配置文件夹里的配置文件进行配置。

还是跟前面 sonarqube 的数据库配置一样。

# 指定oracle数据库
sonar.jdbc.url=jdbc:oracle:thin:@10.10.18.70:1521/orcl
# 指定数据库用户名
sonar.jdbc.username=ncc_auto_sonar
# 指定数据库密码
sonar.jdbc.password=1

第四章:用 sonar 检查代码质量

① 配置

在要检查代码的地方建个这个配置文件 sonar-project.properties

sonarScanner 官网 给的配置方法。

# must be unique in a given SonarQube instance
sonar.projectKey=my:project# --- optional properties ---# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

② 运行

在放好配置文件的目录下输入 sonar-scanner 命令就可以扫描了。

扫描成功标志。

扫描过程详细信息。

C:\Users\Administrator\Desktop\XpathRobot>sonar-scanner
INFO: Scanner configuration file: D:\server\sonar\sonar-scanner-4.3.0.2102-windo
ws\bin\..\conf\sonar-scanner.properties
INFO: Project root configuration file: C:\Users\Administrator\Desktop\XpathRobot
\sonar-project.properties
INFO: SonarScanner 4.3.0.2102
INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
INFO: Windows 7 6.1 amd64
INFO: User cache: C:\Users\Administrator\.sonar\cache
INFO: Scanner configuration file: D:\server\sonar\sonar-scanner-4.3.0.2102-windo
ws\bin\..\conf\sonar-scanner.properties
INFO: Project root configuration file: C:\Users\Administrator\Desktop\XpathRobot
\sonar-project.properties
INFO: Analyzing on SonarQube server 8.2.0
INFO: Default locale: "zh_CN", source code encoding: "GBK" (analysis is platformdependent)
INFO: Load global settings
INFO: Load global settings (done) | time=205ms
INFO: Server id: 02A721FB-AXJaPgmVryaM9Bas_OmF
INFO: User cache: C:\Users\Administrator\.sonar\cache
INFO: Load/download plugins
INFO: Load plugins index
INFO: Load plugins index (done) | time=161ms
INFO: Load/download plugins (done) | time=3743ms
INFO: Process project properties
INFO: Process project properties (done) | time=1ms
INFO: Execute project builders
INFO: Execute project builders (done) | time=5ms
INFO: Project key: my:project
INFO: Base dir: C:\Users\Administrator\Desktop\XpathRobot
INFO: Working dir: C:\Users\Administrator\Desktop\XpathRobot\.scannerwork
INFO: Load project settings for component key: 'my:project'
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=305ms
INFO: Load active rules
INFO: Load active rules (done) | time=3550ms
WARN: SCM provider autodetection failed. Please use "sonar.scm.provider" to defi
ne SCM of your project, or disable the SCM Sensor in the project settings.
INFO: Indexing files...
INFO: Project configuration:
INFO: 21 files indexed
INFO: Quality profile for py: Sonar way
INFO: Quality profile for web: Sonar way
INFO: ------------- Run sensors on module my:project
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=116ms
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$1 (file:/C:
/Users/Administrator/.sonar/cache/54f6535c111cefad0fb6a09ba3e61922/sonar-javascr
ipt-plugin.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byt
e[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of net.sf.cglib.core.
ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflect
ive access operations
WARNING: All illegal access operations will be denied in a future release
INFO: Sensor Python Sensor [python]
INFO: Starting global symbols computation
INFO: 3 source files to be analyzed
INFO: Load project repositories
INFO: Load project repositories (done) | time=14ms
INFO: Starting rules execution
INFO: 3 source files to be analyzed
INFO: 3/3 source files have been analyzed
INFO: Sensor Python Sensor [python] (done) | time=1481ms
INFO: Sensor Cobertura Sensor for Python coverage [python]
INFO: 3/3 source files have been analyzed
INFO: Sensor Cobertura Sensor for Python coverage [python] (done) | time=23ms
INFO: Sensor PythonXUnitSensor [python]
INFO: Sensor PythonXUnitSensor [python] (done) | time=11ms
INFO: Sensor SonarCSS Rules [cssfamily]
INFO: 1 source files to be analyzed
INFO: 1/1 source files have been analyzed
INFO: Sensor SonarCSS Rules [cssfamily] (done) | time=14364ms
INFO: Sensor JaCoCo XML Report Importer [jacoco]
INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=4ms
INFO: Sensor JavaXmlSensor [java]
INFO: Sensor JavaXmlSensor [java] (done) | time=2ms
INFO: Sensor HTML [web]
INFO: Sensor HTML [web] (done) | time=150ms
INFO: ------------- Run sensors on project
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=48ms
INFO: SCM Publisher No SCM system was detected. You can use the 'sonar.scm.provi
der' property to explicitly specify it.
INFO: CPD Executor 1 file had no CPD blocks
INFO: CPD Executor Calculating CPD for 3 files
INFO: CPD Executor CPD calculation finished (done) | time=15ms
INFO: Analysis report generated in 106ms, dir size=214 KB
INFO: Analysis report compressed in 99ms, zip size=52 KB
INFO: Analysis report uploaded in 1527ms
INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=my%
3Aproject
INFO: Note that you will be able to access the updated dashboard once the serverhas processed the submitted analysis report
INFO: More about the report processing at http://localhost:9000/api/ce/task?id=A
XJeUNiUryaM9Bas_RCa
INFO: Analysis total time: 25.030 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 32.540s
INFO: Final Memory: 13M/50M
INFO: ------------------------------------------------------------------------

③ 查看扫描报告

刷新后就能看到扫描后的结果了!

④ 分析报告问题

点进 bug 里可以看到很多问题。

点击 Why is this an issue? 可以查看问题原因,点击整个粉色的部分可以追踪到代码。

⑤ 代码质量评级

点击 quality gates 可以查看代码质量的综合评分。

第五章:sonar 相关设置

① sonar 管理员登录

sonar 管理员登录。

管理员的账号和密码都是 admin

② sonar 设置

管理员登录后才能看到设置页签。

喜欢的点个赞❤吧!

白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示相关推荐

  1. 构建高效的团队协作工具(二) Crowd安装配置

    Crowd是一个基于web的单点登录工具,能够简化应用软件的解决方案以及身份认证管理.管理员可以根据需要,利用Crowd的直观界面来统一管理多用户,web应用和目录服务器的认证和授权. Crowd应用 ...

  2. Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发

    转自:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门–& ...

  3. ftp工具FileZilla下载安装配置

    FileZilla工具图: 客户端: 服务端: 我用的是阿里云服务器,当时不知道咋配置,花了2个多小时看文档(主要是没有找到连贯的教程:包含原理,下载安装配置,安装到阿里云服务器要开啥端口...)+百 ...

  4. 虚拟化工具Xen的安装配置详解

    上一篇介绍了虚拟化的基础知识:这里来介绍具体的虚拟化工具的配置使用: 一.Xen的安装配置详解: 1.配置yum源 http://mirrors.163.com/centos/6.5/xen4/x86 ...

  5. C/C++白盒测试工具之codeviz安装使用(续)

    为什么说CodeViz是白盒测试工具? 可能有些人对博文的标题会提出些异议,没错,CodeViz这款软件的确是用来进行代码分析的一款利器,能够根据需要获取到整个程序中的所有的函数调用关系,为程序员阅读 ...

  6. Git版本SVN工具简介与安装配置及使用

    文章目录 SVN介绍 一.使用原理 二.安装配置SVN 1.安装Git 2.下载SVN 总结 SVN介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采 ...

  7. SonarQube安装配置,与jenkins集成、查看检查结果,solr和idea进行集成使用

    1.Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,Jav ...

  8. FindBugs简介(检查代码质量问题的工具,可以集成到Eclipse中)

    静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷.当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现. 尽管如此,好的静态分析工具仍然是工具箱中的无价之宝.在这个由两部分组成的系列文 ...

  9. 缺陷管理工具bugfree快速安装配置

    前期准备: win7系统电脑一台 以下两款软件自己百度下载 xampp-win32-5.6.8-0 bugfree3.0.4 第一步: 启动IIS服务.打开我的电脑--控制面板--程序和功能--打开或 ...

最新文章

  1. CVPR2020论文解读:手绘草图卷积网络语义分割
  2. vim 去掉自动注释和自动回车
  3. python2和python3同时存在如何使用pip
  4. 前端技术分享:Nginx负载均衡视频,基础的实战应用
  5. return view详解
  6. jozj4010-我才不是萝莉控呢【哈夫曼树】
  7. 25.TCP/IP 详解卷1 --- SNMP:简单网络管理协议
  8. java安卓开发——1.新项目搭建
  9. [工具] Mac下一键APK逆向环境
  10. 深信服云终端aDesk_STD-200H、朵拉云云终端DC10 对比测试
  11. 小说自动采集+【深度seo优化】+自适应=小说网站源码
  12. 深圳移动 神州行(大众卡/轻松卡/幸福卡)套餐资费(含香港日套餐)信息及使用方法...
  13. vs2019豆沙绿背景色及consolas字体设置
  14. 计算机数字控制的机械手臂,90后国人自主研发桌面级机械臂,太牛了~
  15. AAAI2020论文列表(中英对照)
  16. 连续值特征分桶区间设置
  17. DDD-领域驱动设计包结构
  18. 什么是HIS,以及HIS的作用,特点,组成部分
  19. 字符映射表 charmap
  20. 如何把图片转换成渐进式图片

热门文章

  1. 我的HTML学习记录(七)
  2. FastReport.net分组排序、打印顺序、分页、函数使用语法、数据块编辑
  3. 数组中求子数组和最大
  4. 铝聚合物电池工作温度及低温电量差异的说明
  5. android 如何添加第3方lib库到kernel中
  6. python小波特征提取_Python 小波包变换,小波包能量特征提取 代码
  7. linux的~和/的区别
  8. python对于图片的风格的处理--引用github上开源项目的
  9. 25个你可能不知道的Linux真相
  10. 怎样才不浪费IP的价值?