Mac环境下SonarQube的安装与使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: SonarQube是一个用于代码质量管理的开源平台,可以快速的定位代码中潜在的或者明显的错误,支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言.

SonarQube是一个用于代码质量管理的开源平台,可以快速的定位代码中潜在的或者明显的错误,支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言.

准备工作

1.SonarQube
2.Sonar-Scanner
3.mysql数据库(忽略安装过程)


安装

1.下载SonarQube之后,打开bin目录下的对应OS文件夹,如:

     cd /Users/cw/Downloads/sonarqube-7.3/bin/macosx-universal-64
     sonar.sh start
img_f618ddfdc6c035d96ac4a364e7b7f6c3.png
image.png

2.打开浏览器,访问SonarQube:http://localhost:9000,如出现下图则代表SonarQube启动成功

img_98a2fe5ea3a514a544fa5be571396238.png
image.png


配置

  1. 打开mysql并新建一个数据库,数据库名称可任意指定。
  2. 打开SonarQube安装目录下的sonar.properties文件,目录为:

    /path to your SoaneQube location directory/conf/sonar.properties
  1. 在sonar.properties文件中mysql下oracle前添加如下信息

    sonar.jdbc.url=jdbc:mysql:/localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=password
    sonar.sorceEncoding=UTF-8
    sonar.login=admin
    sonar.password=admin

sonar.jdbc.url是你的mysql数据库连接url,sonar.jdbc.username是mysql数据库用户名,sonar.jdbc.password是数据库用户密码,sonar.login是SonarQube的登录用户名,sonar.password是SonarQube的登录密码。
4.重启SonarQube服务

    sonar.sh restart

img_b82353a0176935e08f626f677aec30ca.png
image.png

5.打开浏览器,再次访问 SonarQube: http://localhost:9000,会稍微有点慢,因为需要初始化SonarQube数据库
6.初始化成功后登录
img_2b7d99580ae6c67ecc483cd5e4e5b584.png
image.png

点击位置Log in进入登录页
img_5792ca3570794297122ef422f8b19332.png
image.png

输入admin/admin登录
7.安装中文语言包:
img_1f5d2a5c2ed72220dc595f2b2b2cbf9c.png
image.png

如图,先点击位置1,再点击位置2,在位置3中输入chinese,即可看见Chinese Pack,最后点击位置4以安装中文语言包。等待安装完成。出现如下图界面即安装完成:
img_0e3c9c1ab9c69ea803877e89d11385f2.png
image.png

点击restart重启SonarQube服务器。
img_879028c17581bd70f279258fec1499af.png
image.png

重启完成后即可看见中文界面。

使用

  1. 下载Sonar-Scanner
    2.下载完成后打开Sonar-Scanner目录下sonar-runner.properties文件,目录如:

    /Users/cw/Documents/devtools/sonar/sonar-scanner-2.8/conf/sonar-scanner.properties 

3.在mysql节点下添加如下信息

    sonar.jdbc.url=jdbc:mysql:/localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=password
注意:如果待测试项目与SonarQube服务不在同一台机器,则需要添加SonarQube服务的IP:
    #----- Default SonarQube server
    sonar.host.url=http://XXX.XXX.XXX.XXX:9000
  1. 配置环境变量
    打开终端进行如下操作:

    vim ~/.bash_profile
    在文件末尾添加如下字段:
    export SONAR_RUNNER_HOME=path to your Sonar-Scanner directory
    export PATH=$PATH:$SONAR_RUNNER_HOME/bin
    保存修改
    使配置立即生效:source ~/.bash_profile
  1. 测试Sonar-Scanner
    打开终端输入如下命令

   sonar-runner -version

出现如下图则代表配置成功


img_8b1cbb02cc3939c760383becd8184332.png
image.png

6.打开待测试的项目根目录,新建sonar-project.properties文件并输入如下信息
1). SonarQube版本7以下:

    # must be unique in a given SonarQube instance
    sonar.projectKey=my:project
    # this is the name displayed in the SonarQube UI
    sonar.projectName=i2work-operation
    sonar.projectVersion=1.0
     # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
    # Since SonarQube 4.2, this property is optional if sonar.modules is set. 
    # If not set, SonarQube starts looking for source code from the directory containing 
    # the sonar-project.properties file.
    sonar.sources=src
    # Encoding of the source code. Default is default system encoding
    #sonar.sourceEncoding=UTF-8

2). SonarQube版本7以上:

    # must be unique in a given SonarQube instance
    sonar.projectKey=my:project
    # this is the name displayed in the SonarQube UI
    sonar.projectName=i2work-operation
    sonar.projectVersion=1.0
    # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
    # Since SonarQube 4.2, this property is optional if sonar.modules is set. 
    # If not set, SonarQube starts looking for source code from the directory containing 
    # the sonar-project.properties file.
    sonar.sources=src
    # Encoding of the source code. Default is default system encoding
    #sonar.sourceEncoding=UTF-8
    #path to your project build output path
    sonar.java.binaries=target/classes

其中:sonar.projectName是项目名字,sonar.sources=是源文件所在的目录,SonarQube新版相对于之前的版本新增要求必须指定项目class文件的目录,如果不配置会报错。

  1. 打开终端,进入待测试项目根目录,执行如下命令:

    sonar-runner

执行完成后会出现下图内容


img_2861a020cf4ccd5d20e0caa2827525b3.png
image.png

执行过程中可能会出现如下图所示类型的错误:


img_31fa43b6fbb870943ac464585e3030ca.png
image.png

这是因为SonarScanner在扫描过程中发现了.svn文件,于是启动了自己的SVN插件,去访问SVN,但是又没有对应SVN路径的授权所以就报错。
解决方式:
  1. 打开sonarqube的控制台,使用admin登录后 按下图所示顺序进行操作


    img_b71609f2751f4b9a7722505a80d46ecd.png
    image.png

    在配置->SCM菜单中将Disable the SCM Sensor设置为TRUE,并在下面的SVN配置选项中配置自己的SVN路径及访问账号密码等信息。

  2. 打开SonarQube:http://localhost:9000
    按图示顺序依次点击,即可看见正在分析中的后台任务
    img_2eaca4b35dad2cc710356b861abb566b.png
    image.png

    分析一般会持续10分钟左右,待分析完成后回到SonarQube主页即项目页,即可看见项目的分析结果,如图:
    img_9cdabc296a9bc06168929652c54fafb1.png
    image.png

    点击项目名即可进入查看分析报告的详细信息。

预知更多使用,请登录官网自行学习。

  1. http://www.sonarqube.org/
  2. http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
4天前
|
开发工具 iOS开发 开发者
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在 Mac 上安装 DevEco Studio
本篇将专注于如何在 Mac 上安装鸿蒙开发工具 DevEco Studio,确保开发环境能够顺利搭建。完成安装后,可以正式开始鸿蒙应用的开发工作。
23 1
「Mac畅玩鸿蒙与硬件2」鸿蒙开发环境配置篇2 - 在 Mac 上安装 DevEco Studio
|
27天前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
54 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
|
28天前
|
IDE 开发工具 iOS开发
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
本篇将详细介绍如何在Mac系统上安装Python,并配置Python开发环境。内容涵盖Python的安装、pip包管理工具的配置与国内镜像源替换、安装与配置PyCharm开发工具,以及通过PyCharm编写并运行第一个Python程序。通过本篇的学习,用户将完成Python开发环境的搭建,为后续的Python编程工作打下基础。
159 2
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
|
30天前
|
iOS开发 MacOS Python
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
本篇将详细介绍如何在Mac系统上安装Typora这款简洁高效的Markdown编辑器,并学习Markdown常用语法。通过本篇,用户能够准备好记录学习笔记的工具,并掌握基本的文档编辑与排版技巧,为后续学习提供便利。
140 1
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
|
21天前
|
NoSQL Shell MongoDB
Mac OSX 平台安装 MongoDB
10月更文挑战第11天
17 4
|
23天前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
56 0
Mac os 安装 nginx 教程(success)
|
2月前
|
项目管理 Python
如何在Mac上安装多个Python环境
在你的Mac上使用多个Python环境可以对项目管理很有帮助,特别是在同时处理不同Python版本或不同的包需求时。在这篇文章中,我们将向你展示如何在Mac上轻松地安装和管理多个Python环境。
52 5
 如何在Mac上安装多个Python环境
|
30天前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
18天前
|
PyTorch TensorFlow 算法框架/工具
手把手教你-MAC笔记本安装Pytorch环境
手把手教你-MAC笔记本安装Pytorch环境
21 0