SonarQube学习笔记三:直接使用sonar-scanner扫描器

目录

  • 1.安装Sanner扫描器
  • 2.环境变量配置
  • 3.创建项目
    • 3.1 登录并创建项目
    • 3.2 输入项目名称信息
    • 3.3 选择分析仓库类型
    • 3.4 创建令牌
    • 3.5 保存令牌(非必须)
    • 3.6 选择构建技术方案
      • 3.6.1 .Net类项目
      • 3.6.2 Java类项目
    • 3.7 获取Sonar检查结果
    • 3.8 在页面查看检查结果或者下载检查报告。
    • 3.9 Bug清单,点击可以查看该bug详细信息。
    • 3.10 bug优化建议

如果不采用自动化方式执行代码扫描。可以在本机安装Sonar Sanner扫描器,手动启动扫描。不过我不推荐这种做法,有Jenkins自动化跑的话是没有必要手动操作的。

1.安装Sanner扫描器

下载地址:
.Net类项目:
https://docs.sonarsource.com/sonarqube/9.9/analyzing-source-code/scanners/sonarscanner-for-dotnet/
其它类型项目请查阅:
Analyzing source code overview (sonarqube.org)

2.环境变量配置

以.Net为例,可执行文件的目录添加到 %PATH% 环境变量中。
在这里插入图片描述

在命令行输入:SonarScanner.MSBuild.exe,显示如下说明环境变量配置成功。
在这里插入图片描述

Scanner安装目录下修改SonarQube.Analysis.xml。添加url和token属性(token可以在完成创建令牌后再填入)。
在这里插入图片描述

3.创建项目

3.1 登录并创建项目

登录sonar首页,顶部菜单点击“项目”,然后在页面右上角点击“创建项目”,选择“手工”方式。
在这里插入图片描述

3.2 输入项目名称信息

输入显示名、标识和主分支,主分支默认是main,可以和自己仓库的分支名称保持一直。
在这里插入图片描述

3.3 选择分析仓库类型

选择“本地”。
在这里插入图片描述

3.4 创建令牌

选择“永不过期”,点击“创建”按钮。
在这里插入图片描述

3.5 保存令牌(非必须)

可以将令牌保存在本地(非必须),然后点击继续。
在这里插入图片描述

3.6 选择构建技术方案

根据自己的项目类型选择对应的构建技术方案。当你点击技术方案后,会直接给出运行命令,不同类型项目命令不同,复制到本机cmd窗口直接执行。

3.6.1 .Net类项目

如果您使用的是.NET Framework版本的扫描仪,则需要.NET Framework v4.6或更高版本。要使SonarQube的商业版本受益于安全分析,您需要.NET Framework v4.7.2或更高版本。
用于编译.NET扫描程序(.NET Framework、.NET Core或.NET)的flavor与生成要分析的项目时使用的.NET版本无关。具体来说,您可以使用.NET Framework版本的扫描程序来分析.NET Core代码。它只与您的操作系统和您的构建计算机上安装的.NET SDK版本有关。

以.Net Core项目举例说明操作方法:
在这里插入图片描述
如果是.Net Core需要安装工具,Framework的扫描器是SonarScanner.MSBuild.exe不通过该命令行方式安装:

dotnet tool install --global dotnet-sonarscanner

如果安装sonar成功,命令行显示如下:
在这里插入图片描述

dotnet sonarscanner begin /k:"-TEST" /d:sonar.host.url="http://192.10.50.55:9000"  /d:sonar.login="sqp_dc547e66c23228d82dd3c15ba7ed5e78c700c815"dotnet builddotnet sonarscanner end /d:sonar.login="sqp_dc547e66c23228d82dd3c15ba7ed5e78c700c815"

3.6.2 Java类项目

在这里插入图片描述

3.7 获取Sonar检查结果

在项目列表找到自己的项目,面板首页可以看到部分主要指标信息,点击项目名称可以进入详情页面。
在这里插入图片描述

3.8 在页面查看检查结果或者下载检查报告。

在这里插入图片描述

3.9 Bug清单,点击可以查看该bug详细信息。

在这里插入图片描述

3.10 bug优化建议

在bug详细信息界面查看问题的位置和原因,sonar工具对于部分bug会给出优化改进建议,目前建议信息不支持中文。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153549.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络——计算机网络的性能指标(下)-时延带宽积、往返时间、利用率、丢包率

目录 时延带宽积 往返时间 利用率 丢包率 时延带宽积 时延带宽积等于传播时延乘带宽。假设时延带宽积是一个圆柱体,那么传播时延就是圆柱体的长,带宽就是圆柱体的圆面面积。 若发送端连续发送数据,则在所发送的第一个比特即将到达终点时&…

回归算法全解析!一文读懂机器学习中的回归模型

目录 一、引言回归问题的重要性文章目的和结构概览 二、回归基础什么是回归问题例子: 回归与分类的区别例子: 回归问题的应用场景例子: 三、常见回归算法3.1 线性回归数学原理代码实现输出例子: 3.2 多项式回归数学原理代码实现输…

【JavaEE】文件操作

文章目录 前言什么是文件树型结构组织和目录文件路径文件类型文件权限Java中的文件操作File 类的常见属性File 类常见构造方法File 类常用方法 前言 文件是我们日常生活中使用非常广泛的,我们使用任何一个程序都离不开文件操作,这个文件不仅仅指平时可以…

Pyside6 安装和简单界面开发

Pyside6 安装和简单界面开发 Pyside6介绍Pysied6开发环境搭建Python安装Pysied6安装 Pyside6界面开发简单界面设计界面设计界面编译 编写界面初始化代码软件打包 Pyside6介绍 对于Python的GUI开发来说,Python自带的可视化编程模块的功能较弱,PySide是跨…

关于Go语言的底层,Channel

1.Channel 介绍一下Channel(有缓冲和无缓冲) Go 语言中,不要通过共享内存来通信,而要通过通信来实现内存共享。Go 的CSP(Communicating Sequential Process)并发模型,中文可以叫做通信顺序进程,是通过 gor…

Node.js 做 Web 后端的优势在哪?为什么是明智的选择?

当我们谈论构建强大的Web应用程序时,选择适当的后端技术至关重要。在如今的技术领域中,Node.js已经崭露头角,并且越来越多的开发者和企业选择将其作为首选的后端开发工具。但是,Node.js究竟有哪些优势,使得它成为众多开…

SpringBoot整合POI实现Excel文件读写操作

1.环境准备 1、导入sql脚本: create database if not exists springboot default charset utf8mb4;use springboot;create table if not exists user (id bigint(20) primary key auto_increment comment 主键id,username varchar(255) not null comment 用…

NSSCTF做题(7)

[第五空间 2021]pklovecloud 反序列化 <?php include flag.php; class pkshow { function echo_name() { return "Pk very safe^.^"; } } class acp { protected $cinder; public $neutron; …

《要么孤独 要么庸俗》 笔记

人往往比自己想象的更愚蠢 我的生存原则或意志行事原则是什么&#xff1f;尝试考察自己的生命年轮 一个明智的人不会被表面稳定现象欺骗&#xff0c;还能预测事物发展趋向 由于只能理解结果而不是原因&#xff0c;会错误的认为结果会一直持续下去 很多事情需要时间来兑现&#…

【高级语言程序设计】python函数式编程(一)

基础知识 Python函数式编程的主要内容包括以下几个方面&#xff1a; (1)函数作为一等公民&#xff1a;在函数式编程中&#xff0c;函数被视为一等公民&#xff0c;可以像其他数据类型一样被传递、赋值以及作为返回值。 (2)不可变数据&#xff1a;函数式编程鼓励使用不可变数据…

docker安装wiki

1.docker pull mediawiki 2.docker run -d --name mywiki -p 8666:80 mediawiki 访问ip:8666,就可以看到配置页面了 3.docker pull mysql docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3307:3306 mysql 4.在配置页面链接ip:3307,连接数据库&#xff0c;接下…

C++QT-day3

#include <iostream> /*设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、* 指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;* 类中包含私有成员:成绩、Per类对象p1&#xff0c;* 设计这两个类的构造函数、析构函数和拷贝构造函数。*/ using namespac…

二维码解码文字或者链接怎么做?二维码分解内容的方法

当需要提取出二维码中的文字或者链接时该如何处理呢&#xff1f;一般想要获取二维码中的文本/链接内容可以使用二维码解码&#xff08;二维码解码器在线-二维码图片解码-二维码转短链接生成器-机智熊二维码&#xff09;工具来处理&#xff0c;只需要上传二维码图片就可以自动识…

【git merge/rebase】详解合并代码、解决冲突

目录 1.概述 2.merge 3.rebase 4.merge和rabase的区别 5.解决冲突 1.概述 在实际开发中&#xff0c;一个项目往往是多个人一起协作的&#xff0c;头天下班前大家把代码交到远端仓库&#xff0c;第二天工作的第一件事情都是从服务器上拉最新的代码&#xff0c;保证代码版本…

CSS 布局案例: 2行、多行每行格数不定,最后一列对齐

布局期望的效果如下&#xff1a; 第二行最后一格与第一行最后一格对齐。每行格数不定。自动拉伸填充整个宽度 实现&#xff1a; 一开始打算用display:flex&#xff0c; 自动分散&#xff0c;但是第二行对齐第一行最后一格控制不了。 使用grid fr均分单位控制。 <!DOCTYPE…

智能AI创作系统ChatGPT详细搭建教程/AI绘画系统/支持GPT联网提问/支持Prompt应用/支持国内AI模型

一、智能AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作…

Scala第二十章节

Scala第二十章节 scala总目录 文档资料下载 章节目标 理解Akka并发编程框架简介掌握Akka入门案例掌握Akka定时任务代码实现掌握两个进程间通信的案例掌握简易版spark通信框架案例 1. Akka并发编程框架简介 1.1 Akka概述 Akka是一个用于构建高并发、分布式和可扩展的基于事…

途虎养车上市、京东养车“震虎”,如何突围汽车后市场?

“汽车后市场第一股”终于来了&#xff01; 赶在十一黄金周之前&#xff0c;途虎养车股份有限公司(09690.HK&#xff0c;下称“途虎养车”)于9月26日挂牌港交所&#xff0c;开盘价为28港元/股&#xff0c;与发行价持平&#xff1b;IPO首日报收29.50港元/股&#xff0c;涨幅5.3…

2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]

烹饪机器人仍属于家用电器范畴&#xff0c;是烹饪小家电的进一步细分&#xff0c;它是烹饪小家电、人工智能和服务机器在厨房领域的融合。烹饪机器人是一种智能化厨房设备&#xff0c;可以根据预设的程序实现自动翻炒和烹饪&#xff0c;是多功能料理机和炒菜机结合的产物。 烹…

Android NFC开发详解:NFC读卡实例解析及总结

文章目录 前言一、什么是NFC&#xff1f;二、基础知识1.什么是NDEF&#xff1f;2.NFC技术的操作模式3.标签的技术类型4.实现方式的分类5.流程三、获取标签内容1.检查环境2.获取NFC标签2.1 Manifest中注册的方式获取Tag2.1 前台Activity捕获的方式获取Tag四、解析标签数据1. M1…