SonarQube最全使用教程

Sonar简介

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

  1. 糟糕的复杂度分布

    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
    img

  2. 重复

    显然程序中包含大量复制粘贴的代码是质量低下的 , sonar可以展示源码中重复严重的地方
    img

  3. 缺乏单元测试

    sonar可以很方便地统计并展示单元测试覆盖率
    img

  4. 没有代码标准

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写

  5. 没有足够的或者过多的注释

    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降,而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷

  6. 潜在的bug

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug
    img

  7. 糟糕的设计(原文Spaghetti Design,意大利面式设计)

    通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则;
    通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况 ,检测耦合

Sonar 组成

img

Sonar 集成过程

img

  1. 开发人员在他们的ide中使用SonarLint运行分析本地代码。
  2. 开发人员将他们的代码提交到代码管理平台中(SVN,GIT等)
  3. 持续集成工具自动触发构建,调用SonarScanner对项目代码进行扫描分析
  4. 分析报告发送到SonarQube Server中进行加工
  5. SonarQube Server 加工并且保存分析报告到SonarQube Database中,通过UI显示分析报告

centos安装sonarqube7.7

1、准备

SonarQube版本:sonarqube-7.7.0.zip,官网地址:https://www.sonarqube.org/downloads/

jdk版本:jdk-1.8.0_linux-x64_bin.tar.gz(注:sonarqube从7.9起,不再支持jdk11以下版本)

数据库:mysql5.6-5.7(sonarqube从7.8起,不再支持mysql)(功能验证也可以SonarQube内置的数据库,这样就不需要改数据库配置

2、安装jdk1.8

详见:linux安装jdk8

3、解压SonarQube
yum install -y zip unzip                    // 安装解压工具
unzip /home/data/soft/sonarqube/sonarqube-7.7.zip
4、修改 /home/data/soft/sonarqube/sonarqube-7.7/conf/sonar.properties 文件,更改数据连接配置
sonar.jdbc.url=jdbc:mysql://192.168.1.165:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
5、创建SonarQube启动用户(SonarQube内置了elasticsearch,elasticsearch不允许使用root用户启动)
useradd sonar
passwd sonar
7、设置系统参数(elasticsearch启动需要设置一些参数)

详细见:elasticsearch启动常见错误

未设置这些参数在$SONARQUBE_HOME/logs/es.log中出现以下错误:

8、赋予启动用户执行权限
chown -R sonar:sonar /home/data/soft/sonarqube/sonarqube-7.7
9、登陆启动用户,启动程序
su - sonar                                            // 以sonarqube用户登陆
cd /usr/local/sonarqube-7.9.1/bin/linux-x86-64   // 进入启动命令目录
./sonar.sh start                                  // 启动程序
10、登陆http://192.168.1.224:9000访问,默认用户名/密码为:admin/admin
11、安装中文语言包

登录后, 打开 Administration → Marketplace, 搜索 chinese pack, 点击 install

img

会提示重启系统, 选择 Restart

注:如何 Intall 出错可以直接去官网下载jar包。上传到到服务器 /home/data/soft/sonarqube/sonarqube-7.7/extensions/downloads 目录下,并重启sonarqube服务即可。

12、常用命令:
service sonar start     // 启动服务
service sonar stop      // 关闭服务
service sonar restart   // 重启服务

chkconfig sonar on      // 设置开机启动
chkconfig sonar off     // 关闭开机启动

Jenkins中使用sonar扫描java项目

安装sonar插件

img
由于安装插件需要翻墙,有可能无法安装成功,这里提供插件sonar.hpi,选择离线上传同样可以安装。
sonar.hpi:链接: https://pan.baidu.com/s/11L_uon8gakmZHoc_xTI1gQ 提取码: g9pw

img

sonar插件配置

系统设置

在这里插入图片描述

全局配置

在这里插入图片描述

在原项目上增加Excute Sonarqube Scanner
Scanner Analysis properties
sonar.projectKey=$JOB_NAME
sonar.projectName=$JOB_NAME
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.login=admin
sonar.password=admin
sonar.java.binaries=$WORKSPACE/iot-network/iot-netty-route/target/classes/ 
构建成功

在这里插入图片描述

IDEA中使用插件sonarlint连接到SonarQube对代码质量进行管控

sonarLint插件安装

File–Setting-Plugin 输入SonarLint搜索插件
在这里插入图片描述

配置插件

1、配置Token

打开本地SonarQube管理后台,输入账户密码,默认admin/admin

img

创建项目

img

在上面画圈的任意一处,点击新建项目

img

创建令牌

img

获得令牌

img

分析你的项目–选择Maven
在这里插入图片描述

插件安装成功以后,打开插件配置界面,路径:File–Tools
在这里插入图片描述

打开SonarLint General Settings,按照下图输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HK0kBZ3E-1657630295323)(/Users/tong/Library/Application Support/typora-user-images/image-20220712141119954.png)]

把上一步的token输入(写博客截图,忘记保存了token,下面是错误的)

img

img

2、绑定到当前项目

打开SonarLint Project Settings

在这里插入图片描述

connection选择刚刚的配置“sonarqube”,选择我们刚刚创建的项目

img

项目全局分析

Terminal中执行

mvn sonar:sonar \
  -Dsonar.projectKey=test-project \
  -Dsonar.host.url=http://192.168.1.224:9000 \
  -Dsonar.login=78e2f0ea396d9cd941d77a3f14429a566c951a34

在这里插入图片描述

登录SonarQube管理后台 http://192.168.1.224:9000后台效果,查看质检效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lVZ17ZL4-1657630295324)(/Users/tong/Library/Application Support/typora-user-images/image-20220712143032136.png)]

参考文献:SonarQube的使用入门

SonarQube使用介绍

CentOS安装SonarQube

  • 12
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用SonarQube 7.8,您可以按照以下步骤进行操作: 1. 首先,您需要下载SonarQube 7.8的安装文件。您可以在官网(https://www.sonarqube.org/downloads/)上找到SonarQube 7.8的版本,下载sonarqube-7.8.zip文件。 2. 下载完成后,将该文件上传到您的服务器的/usr/local/wts/目录下,并解压文件。您可以使用以下命令进行解压: ``` cd /usr/local/wts unzip sonarqube-7.8.zip ``` 3. 接下来,您需要为elasticsearch启动用户赋予该文件夹的权限。您可以使用以下命令进行设置: ``` chown -R sonar:sonar /usr/local/wts/sonarqube-7.8/ ``` 4. 现在,您可以切换到启动用户并启动SonarQube程序。您可以使用以下命令进行操作: ``` su - sonar cd /usr/local/wts/sonarqube-7.8/bin/linux-x86-64 sh sonar.sh start ``` 5. SonarQube启动后,您可以在浏览器中访问SonarQube的Web界面进行配置和使用。 请注意,以上步骤仅适用于SonarQube 7.8版本。如果您使用其他版本,步骤可能会有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SonarQube最全使用教程](https://blog.csdn.net/tongfj/article/details/125751659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SonarQube7.8 安装及使用](https://blog.csdn.net/kzdwts/article/details/130804263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值