一、背景

目标:在macbook机器本地环境搭建sonarqube服务,并对本地maven项目代码进行静态扫描,将扫描结果提交到sonarqube服务中,并在web页面中展示出来。
静态代码扫描可以发现的问题:
a、数组越界:例如,数组长度为10,arr.length=10,但出现arr[10]这种越界
b、大量重复代码块
c、死循环
d、定义的变量未使用
e、过高的代码复杂度
f、不可达的僵尸代码
g、空指针引用
h、缓冲区溢出
i、部分内存泄露问题
j、变量类型不匹配
k、使用未初始化的变量

二、搭建步骤

1、下载sonarqube软件

下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/
下载历史版本sonarqube6.7.5的zip压缩包,因为高版本不稳定。解压后,在/bin/macosx-universal-64文件夹下执行sonar.sh console即可运行,访问http://localhost:9000,以默认的admin/admin即可登录进系统页面,此访问地址即是sonar扫描结果的展示系统。
注意:以上的前提是在jdk1.8环境,此时采用的是sonarqube的内置数据库,不支持数据的迁移和维护,一般不用内置数据库,连接外部数据库需要修改conf/sonar.properties文件

2、搭建mysql数据库环境(这里以mysql为例)

sonarqube6.7.5可支持的mysql版本为5.6、5.7,其他版本均不适配!在本地电脑上搭建相应版本的mysql数据库。

3、修改sonarqube的数据库连接配置

修改conf/sonarqube.properties文件,该文件可修改访问端口(默认是9000)和指定连接外部数据库(默认是内置数据库)
修改以下几项即可:
sonar.jdbc.username
sonar.jdbc.password
sonar.jdbc.url
sonar.jdbc.driverClassName

#--------------------------------------------------------------------------------------------------
# DATABASE
#
# IMPORTANT:
# - The embedded H2 database is used by default. It is recommended for tests but not for
#   production use. Supported databases are MySQL, Oracle, PostgreSQL and Microsoft SQLServer.
# - Changes to database connection URL (sonar.jdbc.url) can affect SonarSource licensed products.# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=root
sonar.jdbc.password=mydatabasepassword
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.url=jdbc:mysql://23.60.22.121:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
.....
.....
.....

修改完毕重启即可。

4、本地代码扫描结果自动提交到sonarqube服务

1)由于使用maven命令执行代码扫描,所以修改本地maven的conf/settings.xml文件,将以下内容添加到该文件中并保存。

<pluginGroups><pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups><profiles><profile><id>sonar</id><activation><activeByDefault>true</activeByDefault></activation><properties><sonar.host.url>http://localhost:9000</sonar.host.url></properties></profile></profiles>

2)在本地IDE工具中执行mvn clean verify sonar:sonar命令,即可下载相关插件,并将代码扫描结果提交到sonarqube服务。
扫描结果展示:

原理图:


















提交







读取










本地代码扫描结果









sonarqube连接的数据库









sonarqube页面读取数据库并展示结果







sonarqube静态扫描代码环境搭建及使用(本地环境)相关推荐

  1. 本机php环境搭建教程:windows环境下wampserver的配置教程——超级详细

    转载自:http://youchunyan5.blog.163.com/blog/static/5896062020123474456352/ 本机php环境搭建教程:windows环境下wampse ...

  2. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析

    嵌入式linux开发环境搭建--VirtualBox虚拟机网络环境解析 本博文转自:Pandoras Box http://blog.csdn.net/yxc135/article/details/8 ...

  3. appium环境搭建python_python2.7+appium环境搭建

    实现android自动化 目录 1.环境准备.安装包准备 2.安装 3.验证环境搭建成功 1.环境准备.安装包准备 第一步:环境准备: java环境 python环境 第二步:准备安装包 Node.j ...

  4. java后台环境搭建_后端-java环境搭建

    java环境搭建 开发工具:idea/eclipse/myeclipse + mysql/oracle/sqlserver/postgresql + tomcat6/7/8/9. 下面以eclipse ...

  5. Hadoop环境搭建教学(一)运行环境,集群规划介绍;

    文章目录 前言 一.Hadoop的三种运行环境 二.集群规划 三.需要的基本软件安装 下期见 前言 Hadoop的运行环境可以是在Windows上,也可以在linux上,但在Windows上运行效率很 ...

  6. ESP32s3-EYE ESP-IDF环境搭建Ubuntu18.04 Micropython环境搭建Pycharm 物联网

    提示:该项目建立于ubuntu18.04版本,esp-idf版本为4.4.1,ESP32S3-EYE开发板由乐鑫公司提供,在此表示感谢.项目中的rPPG技术来源于github上的nasir,本项目所有 ...

  7. python服务器环境搭建_服务器python环境搭建

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python搭建服务器以快捷著称,实际上,我们也可以使用python搭建简易的服 ...

  8. ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建

    Ubuntu14.04开发环境搭建 嵌入式开发过程中很重要的一环节就是开发环境的搭建,开发环境搭建的好可以很好的提高开发效率.其中关键的一部就是挂载运行程序,对于程序的挂载运行需要借助NFS服务器,下 ...

  9. linux php环境搭建教程,linux php环境搭建教程

    linux php环境搭建的方法:首先获取相关安装包:然后安装Apache以及mysql:接着修改配置文件"httpd.conf":最后设置环境变量和开机自启,并编译安装PHP即可 ...

最新文章

  1. 线性方程 最小二乘解 SVD分解
  2. python学习:语句
  3. 常用的函数式接口_Consumer接口
  4. ASP.NET 连接MySql数据库
  5. ASP.NET Core SignalR:集线器Hub
  6. QT+vs2010下改变可执行程序的图标
  7. 数据结构与算法--9.常见时间复杂度及其之间的关系
  8. python结构化数据_python新手入门必备—— 使用json保存结构化数据
  9. Zookeeper 教程:Zookeeper作为Hadoop和Hbase的重要组件,为分布式应用程序协调服务
  10. Ambari ambari 集群及组件
  11. oracle清空数据库命令行,使用命令行手动卸载Oracle Database 11gR2
  12. liferay 去掉 portlet:actionUrl 跳转时的message
  13. widows下 python环境变量配置
  14. php7.1 win7,win7 配置AMP环境(apache2.4.39 + php7.1.28)
  15. cadence SPB16.6原理图库(.olb)集合的库内容列表2
  16. 网络规划设计师教程知识点精讲之计算机网络分类
  17. CORE Transport Technologies宣布蓝牙航空货物跟踪系统重大升级
  18. python层次分析法案例_在R语言中使用层次分析法-案例1
  19. Android四大组件——BroadcastReceiver普通广播、有序广播、拦截广播、本地广播、Sticky广播、系统广播
  20. 决策树ID3、C4.5和CART算法总结,及案例计算

热门文章

  1. [转]VC++中对文件的写入和读取
  2. Linux 下mysql 安装完成后,输入mysql 无法进入问题
  3. 马克.扎克伯格的执行力
  4. 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
  5. 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛
  6. 239 Sliding Window Maximum 滑动窗口最大值
  7. oracle 内置函数(三)日期函数
  8. 如何用Windows Live Writer写网易博客
  9. end_form_tag 已经在rails2.x中去掉了
  10. Python语言编程之LEGB变量作用域法则