代码质量审查工具sonarqube安装

sonarqube+jenkins实现持续CodeReview sonarqube+jenkins实现代码持续Review 介绍篇 SonarQube 介绍 SonarQube 是 一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测, 如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面: 检查代码是否... 阅读详情

简介

SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。

通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理

架构图

在这里插入图片描述

可以从七个维度检测代码质量:

(1)复杂度分布(complexity):代码复杂度过高将难以理解
(2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方

(3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
(4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
(5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
(6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug

(7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度

准备工作

JDK1.8需要安装和环境变量
mysql数据库:安装方式如下
https://blog.youkuaiyun.com/zjcjava/article/details/78037276

sonar安装

下载安装文件
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.3.zip

创建数据库sonar,和用户密码,并授权

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

修改配置文件

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

sonar.web.port=9000
sonar.search.port=9001

注意这里的端口我修改了,web端口是9000,es的端口是9001

WIN系统启动服务

CMD命令行下执行,初始化创建数据库和启动es等服务
E:\sonarqube-7.3\bin\windows-x86-64>StartSonar.bat

主要端口不要被占用,如果占用请关闭。
cmd查看端口占用

netstat -aon|findstr "9000"

centos利用netstat -tpnl查看的端口开放情况

centos系统启动服务

不能用root用户启动es
创建sonar 用户并赋权

[root@i-vzdytl5t linux-x86-64]# adduser sonar
[root@i-vzdytl5t linux-x86-64]# passwd sonar
[root@i-vzdytl5t sonarqube]# chown -R sonar:sonar  sonarqube-7.3

然后启动服务

[root@i-vzdytl5t linux-x86-64]# su sonarUser
[sonarUser@i-vzdytl5t linux-x86-64]$ ./sonar.sh console
//后台启动
[sonarUser@i-vzdytl5t linux-x86-64]$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.

[sonarUser@i-vzdytl5t linux-x86-64]$ netstat -tlnp 

#./sonar.sh start 启动服务
#./sonar.sh stop 停止服务
#./sonar.sh restart 重启服务

浏览器打开web服务安装插件

http://localhost:9000/projects
默认管理账号和密码都是admin

汉化插件安装
直接访问下面的地址,就可以看到,列表中有Chinese Pack,
点击Install安装,安装完成后菜单栏下方会提示你重启,点击重启即可
http://localhost:9457/admin/marketplace?search=Chinese

Checkstyle 插件安装
admin 登录,点击 配置 -> 系统 -> 更新中心 -> Available -> Search,输入 CheckStyle,在搜素结果中找到 CheckStyle 插件点击 Install,等待下载完成后,按照页面提示点击 Restart 自动重启服务即可完成安装。

代码检测

代码检测需要客户端把检测的报告提交到服务中去
前面已经说了客户端可以通过IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式进行扫描分析

maven 插件方式

在安装maven后的setting.xml文件的profiles标签下面贴如下配置信息

  <profile>
      <id>sonar</id>
      <activation>
          <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
          <!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
          <sonar.host.url>
            http://localhost:9000
          </sonar.host.url>
      </properties>
  </profile>

进入该java项目根目录 执行如下命令,最后BUILD SUCCESS则检测成功完成

>mvn clean install sonar:sonar

Scanner安装

参照资料:https://blog.youkuaiyun.com/songer_xing/article/details/76687225

下载Scanner
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

1.解压后,打开sonar-scanner-2.8目录下的conf目录,找到sonar-scanner.properties文件

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

2.命令查看是否可用,配置环境变量
配置环境配量
Windows下新增一个变量SONAR-RUNNER,值为sonar-scanner的解缩地址,
如E:\Program File\sonar-scanner-2.8
然后在PATH变量后面追加%SONAR-RUNNER%\bin;

centos下直接在/etc/profile下参考jdk的方式

sonar-scanner -v

测试源码分析

1、配置sonar-project.properties

在要进行代码质量检测的项目根目录下新建一个名为sonar-project.properties的配置文件

# 项目唯一标识符key
sonar.projectKey=com.demo             
# 项目名称
sonar.projectName=demo          
#  项目版本
sonar.projectVersion=1.0               

# //分析的代码文件目录
sonar.sources=src                          
sonar.sourceEncoding=UTF-8 

2.cd进入你的工作空间,某个工程的代码路径,
3、敲入sonar-scanner,即可进行分析

CICD持续集成和Jenkins的安装配置【SonarQube代码审查】(八)_gitlab cicd 集成 sonarqube chown -R sonar. /opt/sonar 更改sonar目录及文件权限。su sonar ./bin/linux-x86-64/sonar.sh status 查看状态。su sonar ./bin/linux-x86-64/sonar.sh start 启动。su sonar ./bin/linux-x86-64/sonar.sh stop 停止。 阅读详情

相关推荐

代码质量分析利器之SonarQube【史上最全】

写在前面 随着业务的发展,程序员维护的系统会越来越庞大。原本一个简单稳定的功能,可能在迭代几次后复杂度上升,导致潜在的风险随之暴露,最终导致服务不稳定,造成业务价值的损失。因此,各位大佬们一致认为需要从源头抓起,从个人技术成长到工作流程标准化去提供系统稳定性。与此同时,我也在代码质量这个方向进行挖掘,试图通过代码质量分析去反向要求程序员提高代码编程能力,降低错误风险,这才有了今天的主角-SonarQube 文章目录写在前面背景代码质量分析的痛点调研调研结果Sonarqube介绍工作原理功能介绍项目项目-总览

1万+

SonarQube+SonarScanner搭建

SonarQube+SonarScanner搭建

GalaxySpaceX的博客 2612

Jenkins+SonarQube代码审查

Jenkins+SonarQube代码审查安装SonarQube安装MySQL安装SonarQube实现代码审查环境配置在项目添加SonaQube代码审查(非流水线项目)在项目添加SonaQube代码审查(流水线项目) SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。 目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测 官网:https://www.sonarqu

611 - 菜鸟运维逆袭架构师之路 2281

sonarqube的安装

sonarqube的安装 一、上传包 1、上传sonarqube压缩包 这里以7.9.2为例: 上传sonarqube-7.9.2.zip到/usr/local下解压 cd /usr/local unzip sonarqube-7.9.2.zip 2、上传jdk 这里以11.0.2为例: 上传openjdk-11.0.2_linux-x64_bin.tar.gz解压到/usr/local/sonarqube-7.9.2 tar -zxvf openjdk-11.0.2_linux-x64_bin.tar.

Thtbs_Z的博客 325

手把手教你SonarQube入门安装与使用

简介 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。 Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。 支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 潜在的缺陷

My Blog My Style 1262

Jenkins集成Sonar进行代码审查

  由于最近客户要求在devops持续集成平台上增加代码审计功能,经过一番对比,决定选用sonar来实现,通过网上的文档艰难的完成了安装,写篇博客记录下。 SonarQube 简介   Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、fi...

skysrc的博客 2769

Sonar安装使用

说明elasticsearch不能在root权限下运行。目录:conf/sonar.propertise。地址:192.168.7.247:9000。账号:admin 密码:admin。账号:admin 密码:admin。重启sonar,登录就会变成中文版。授权完成后切换用户启动sonar。sonarqube-7.6版本。输入项目标识、显示名,点击设置。选择Java、Maven。访问前确保端口已被放行。

qq_43579559的博客 999

8、jenkins项目代码审查-SonarQube代码审查

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

Daniel 622

sonar内置ES数据查询一

ElasticHD工具安装 https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/tag/1.4 [root@52-118 PRG]# ll 总用量 38632 -rwxrwxrwx. 1 root root 22772813 6月 17 2017 ElasticHD drwxrwxrwx. 9 root root 4096 12月 10 14:26 ElasticHD-1.4 -rw-r--r--. 1 root root 103

Mia专栏 1526

SonarQube与Jenkins集成搭建指南

SonarQube是一个开源的代码质量管理平台,能够持续地扫描项目源代码,提供实时的代码质量反馈。它支持多种编程语言,具备简洁的UI界面,用于识别代码中的bug、代码异味(code smells)和潜在的漏洞。SonarQube通过直观的图表和统计数据,帮助开发团队理解和解决代码质量问题。持续集成/持续部署(CI/CD)是一种软件开发实践,旨在加快软件交付过程。它通过自动化的构建、测试和部署流程来减少开发人员与运维团队之间的沟通障碍。持续集成(CI)是指频繁地(一天多次)将代码集成到共享仓库中。

weixin_36238982的博客 687

保姆级教程:用GEE(Google Earth Engine)复现CASA模型计算NPP,附完整数据集清单与Python代码

本文提供了一份详细的保姆级教程,指导如何使用GEE(Google Earth Engine)复现CASA模型计算NPP(净初级生产力)。教程涵盖环境准备、关键数据集获取与处理、Python代码实现全流程,以及结果验证与常见问题解决方案,帮助生态学研究者高效完成NPP计算。

weixin_28707365的博客 333

jenkins+sonar+ios 基于object C(object-c-plugin-snapshot免费版)搭建

目录 1、简单介绍原理 2、sonar环境配置 3、sonar-runner环境配置 4、集成执行生成可视化报表 1、介绍原理 开题提过,我之前的oclint是通过jenkins 调度执行在我们配置的几台mac slave上的,oclint生成的报告是pmd格式,通过jenkins的插件Pbulish PMD analysis results解析和展示。

lxlmycsdnfree的博客 2716

MIMIC-IV数据库中患者院内死亡的单因素生存分析

目的 由易到难,对mimic-iv的查询进行实际操作,体现先前文章中提到的mimic-iv数据查询的规律。 数据分析计划 死亡,是重症患者最重要的结局指标,在MIMIC数据库中收录了院内死亡的数据,以及进出ICU的时间(和进出医院的时间),所以我们可以获得是否死亡,以及从入ICU(或入院)到死亡发生之间的时间,有了这两个指标,我们可以通过Cox单因素(参数和非参数)模型来观察ICU(和医院)内死亡的趋势,以及某个变量(比如,性别和种族等)对死亡趋势的影响,以为后续的分析奠定基础。 数据的获取 我们需要数个变

skyskytotop的博客 3184

Mac安装SonarQube教程

一、SonarQube简介 SonarQube是管理代码质量的开放平台,可以快速的定位代码中潜在的或明显的错误。 SonarQube具备的功能: 不遵守代码标准(checkstyle) 潜在缺陷(空指针) 糟糕的复杂度(难以理解) 重复(通用的方法需要归纳封装) 糟糕的注释 糟糕的设计(耦合度检查) SonarQube属于代码检查的server端,并提供可视化界面;Sonar-Scanner属于client端。用于收集检查数据并且发送到server中。也就是传统的C/S关系 二、版本和下载地址 Son

sinat_34241861的博客 3076

第二十一篇: `man`, `tldr`, `explain` - 授人以渔的“终极指令”

我们已经一起学习了19个(组)关键命令,从nvidia-smi到kubectl。但这只是GPU运维武器库中的一小部分。技术日新月异,新的工具、新的参数会不断涌现。这个系列的真正目的,不仅是教会你使用这19件“兵器”,更是希望你掌握学习任何一件新兵器的方法论。这套方法论就是你的“终极指令”。授人以鱼不如授人以渔。至此,《GPU运维指令集:20个关键命令的战地手册》系列已全部完结。我们从nvidia-smi出发,一路探索了监控、诊断、容器、集群、网络、性能等各个维度的命令,最后用自动化脚本将它们串联,又用。

weixin_42587823的博客 1350

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 972

SonarQube系列一、Linux安装与部署

来源:https://www.cnblogs.com/7tiny/p/11269774.html【前言】随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码...

dotNET跨平台 385

ABAQUS二次开发中创建SET

在ABAQUS中创建加载、边界条件时,需要使用set,创建set时需要使用对象集合对象中的Set函数,这个函数需要提供加入对象集合的列表,但这个对象列表好像并不能自行创建,只能通过ABAQUS各类对象集合中的findAt、getSequenceFromMask、getByBoundingSphere、getByBoundingCylinder或getByBoundingSphere函数得到,但这几个函数在直接使用PYTHON编程时都不太好用。这个函数返回一个字典,如下所示。

hohoyu的专栏 2482

开源代码审查工具Sonarqube简单使用

Your teammate for Code Quality and Code Security

Braycep的博客 7006

Python爬虫教程:如何爬取多平台电商商品信息(价格、评价、库存)

本文介绍了如何编写一个跨平台电商商品爬虫,爬取多个平台的商品信息,包括商品名称、价格、评价等数据。通过Python的爬虫库(如requestsSelenium)和数据处理库(如pandasmatplotlib)的结合,我们可以高效地获取和分析电商平台上的商品信息。

2201_76125261的博客 916

YOLOv11涨点改进 | Conv篇/小目标改进 | YOLOv11引入SPDConv卷积特征无损下采样模块,增加YOLOv11小目标P2检测层(助力小目标任务高效涨点)

本文提出了一种创新的SPDConv模块来优化YOLOv11模型,通过空间到深度(SPD)层和非步幅卷积层实现特征无损下采样。该方法有效解决了传统CNN中因跨步卷积和池化层导致的细粒度信息丢失问题,特别提升了小目标检测性能。实验表明,SPDConv在目标检测和图像分类任务中显著优于现有SOTA模型。文章详细介绍了模块原理、核心代码实现,并提供了YOLOv11集成SPDConv的具体方法,包括配置文件修改和P2层增强等优化技巧。该技术为计算机视觉任务提供了一种高效的特征保留方案。

Ai缝合怪、助力小伙伴高效发论文 586

【Jenkins持续集成(一)】SonarQube 入门安装使用教程

一、前言 持续集成管理平台不只是CI服务器,是一系列软件开发管理工具的组合。 源码版本管理:svn、git 项目构建工具:Maven、Ant 代码质量管理:Sonar(Checkstyle、PMD、FindBugs……) 持续集成引擎:Hudson、Jenkins、Apache Continuum 应用持续部署:操作系统、JDK、Tomcat、JBoss… 注:实现持续集成过程中还要用到其他各种工...

郑清 1980

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

【深度踩坑】手把手教你最高版本Sonarqube9安装!(多图预警)

【深度踩坑】手把手教你最高版本Sonarqube9安装!(多图预警) 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发的世界里,代码质量是确保项目成功的关键因素之一。Sonarqube 9作为一款强大的代码质量分析工具,能够帮助开发者识别代码中的潜在问题,提升代码的可维护性和稳定性。然而,安装和配置Sonarqube 9可能会遇到各种挑战。为了帮助开发者顺利完...

gitblog_06565的博客 426

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SonarQube代码质量管理平台搭建手册(集成jenkins进行自动化代码审查)

SonarQube代码质量管理平台搭建手册(集成jenkins进行自动化代码审查)1.安装SonarQube1.1 步骤1 准备好java环境(本次测试系统为windows,linux环境下可参照windows步骤) 1.2 步骤2 进入官网下载SonarQube,解压到目录D:\sonar\sonar5.4(可解压到任意目录) 1.3 步骤3 修改D:\sonar\sonar

lubing36的博客 3619

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: http长连接
下一篇: SpringBoot自动配置的原理及实现以及SpringBoot3.0的变化
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值