【DevOps-07-2】Sonarqube基本使用

一、简要说明

Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果

  • Sonarqube集成在Maven实现代码检测
  • 使用sonar-scanner客户端的方式

二、Sonarqube管理后台安装中文插件

1、登录Sonarqube管理后台

示例:http://192.168.95.131:9010/

2、同意协议,安装中文插件

3、安装完成之后,重启Sonarqube服务

三、Maven实现代码检测

1、修改Maven的setting.xml文件配置,增加Sonarqube相关信息

<profile>
  <id>sonar</id>
  <activation>
      <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
      <sonar.login>admin</sonar.login>
      <sonar.password>123456789</sonar.password>
      <sonar.host.url>http://192.168.95.131:9010</sonar.host.url>
  </properties>
</profile>

2、配置好,重新再工程同步Maven依赖信息

3、使用Maven命令对工程进行代码质量检测

$ mvn sonar:sonar

4、登录Sonarqube的管理后台,查看代码质量检测报告

5、可以点击查看具体检测信息

四、Sonar-Scanner实现代码检测

1、Sonar-Scanner官方文档

SonarScanner CLIThe SonarScanner CLI is the scanner to use when there is no specific scanner for your build system.icon-default.png?t=N7T8https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

2、下载Sonar-Scanner

3、上传Sonar-Scanner到服务器

4、安装unzip,并解压Sonar-Scanner zip安装包

# 安装unzip
$ yum -y install unzip

# 进入到sonar-scanner安装包存放的目录
$ cd /data/soft

# 解压 sonar-scanner zip安装包
$ unzip sonar-scanner-cli-4.7.0.2747-linux.zip

5、移动Sonar-Scanner解压的文件夹到/usr/local/sonar-scanner目录

$ mv sonar-scanner-4.7.0.2747-linux /usr/local/sonar-scanner

6、配置sonar-scanner服务端信息

# 进入sonar-scanner配置文件目录
$ cd /usr/local/sonar-scanner/conf/

# 配置sonarqube相关信息
$ vi sonar-scanner.properties

7、把sonar-scanner挂载到Jenkins Docker的文件卷

7.1、修改Jenkins docker-compose.yml文件

# 进入Jenkins的安装目录
$ cd /usr/local/deploy/jenkins/

# 编辑 docker-compose.yml
$ docker-compose.yml

7.2、重新启动Jenkins docker服务

$./docker-compose-restart.sh

8、执行命令检查代码

8.1、在Sonarqube管理生成一个扫码用的用户登录授权token

sonar-scanner 命令中

-Dsonar.login=c8483abbf03c0fd4212ffce2c1e93c5ae8cd65bd使用

8.2、使用sonar-scanner检测代码质量

  • -Dsonar.sources:被扫码的源码目录
  • -Dsonar.projectname:项目名称
  • -Dsonar.projectKey:项目key,一般与项目名称一致即可
  • -Dsonar.java.binaries:项目编译后的字节码
  • -Dsonar.login:Sonarqube用户登录授权token
# 进入需要扫码的工程目录
$ cd /usr/local/deploy/jenkins/jenkins-data/workspace/jenkins-publish-demo

# 使用sonar-scanner命令检测代码质量
$ /usr/local/sonar-scanner/bin/sonar-scanner \
    -Dsonar.sources=./ \
    -Dsonar.projectname=jenkins-publish-demo-linux \
    -Dsonar.projectKey=jenkins-publish-demo-linux \
    -Dsonar.java.binaries=./target/ \
    -Dsonar.login=c8483abbf03c0fd4212ffce2c1e93c5ae8cd65bd

8.3、登录到sonarqube管理后台查看检测报告

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

案例253:基于微信小程序的懂球短视频管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SpringBoot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

无人机发动机,预计到2025年将保持相对稳定

随着无人机技术的不断发展&#xff0c;无人机应用领域越来越广泛&#xff0c;市场需求也不断扩大。而无人机发动机是无人机的核心部件之一&#xff0c;市场前景也十分广阔。全球市场分析&#xff1a; 目前&#xff0c;全球无人机发动机市场主要分为四类&#xff1a;燃气涡轮发动…

【自学笔记】01Java基础-09Java关键字详解

介绍java&#xff08;基于java11&#xff09;中所有关键字&#xff0c;以及主要重要的关键字详解。 1 Java 11中的关键字&#xff1a; 1.1 类型声明与变量定义 boolean&#xff1a;声明布尔类型变量&#xff0c;只有两个可能值 true 或 false。byte&#xff1a;声明一个8位有…

公共用例库计划--个人版(二)主体界面设计

1、任务概述 计划内容&#xff1a;完成公共用例库的开发实施工作&#xff0c;包括需求分析、系统设计、开发、测试、打包、运行维护等工作。 1.1、 已完成&#xff1a; 需求分析、数据库表的设计&#xff1a;公共用例库计划–个人版&#xff08;一&#xff09; 1.2、 本次待…

vmware安装centos 7.6 操作系统

vmware安装centos 7.6 操作系统 1、下载centos 7.6 操作系统镜像文件2、安装centos 7.6操作系统3、配置centos 7.6 操作系统3.1、配置静态IP地址 和 dns3.2、查看磁盘分区3.3、查看系统版本 1、下载centos 7.6 操作系统镜像文件 这里选择 2018年10月发布的 7.6 版本 官方下载链…

33--反射

1、反射(Reflection)的概念 1.1 反射的出现背景 Java程序中&#xff0c;所有的对象都有两种类型&#xff1a;编译时类型和运行时类型&#xff0c;而很多时候对象的编译时类型和运行时类型不一致。 Object obj new String("hello"); obj.getClass(); 例如&#xf…

互联网广告行业发展历程

在20年的历程中&#xff0c;广告主与媒体方持续面对着一些问题&#xff0c;一些核心问题推动了行业的迭代。 互联网广告经过了20年左右的高速发展&#xff0c;已愈发成熟&#xff0c;其历程是有趣的。 对互联网广告发展的理解&#xff0c;网上的文章并不多&#xff0c;已有的…

力扣1944.队列中可以看到的人数--单调栈

思路&#xff1a; 由题知一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 &#xff0c;也就是说&#xff0c;在自己右边第一个比自己高的人后面的人就肯定看不到了那么只需要找到右边第一个比自己高的人与自己之间的所有满足要求的人就行了&#xff0…

大数据毕业设计:python房源数据爬虫分析预测系统+可视化 +商品房数据(源码+讲解视频)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

15|检索增强生成:通过RAG助力鲜花运营

15&#xff5c;检索增强生成&#xff1a;通过RAG助力鲜花运营 什么是 RAG&#xff1f;其全称为 Retrieval-Augmented Generation&#xff0c;即检索增强生成&#xff0c;它结合了检索和生成的能力&#xff0c;为文本序列生成任务引入外部知识。RAG 将传统的语言生成模型与大规…

Pygame和Cocos2d

Pygame和Cocos2d都是 Python 中常用的游戏引擎&#xff0c;但它们的设计目标、特点和使用场景略有不同。 Pygame与Cocos2d&#xff0c;目前是使用人数最多的两个Python游戏库。根据某知名产品点评网站的数据显示&#xff0c;排名前五的Python 2D游戏库如下图所示。其中&#x…

聚观早报 |小米汽车SU7官图发布;优酷上线“AI搜片”功能

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 12月29日消息 小米汽车SU7官图发布 优酷上线“AI搜片”功能 小米汽车智能驾驶技术公布 百度投资AIGC公司必优科技…

硬链接和软链接以及inode的简述【Linux】

硬链接和软链接 inode是什么&#xff1f;面试题 硬链接软链接 inode是什么&#xff1f; 认识inode之前&#xff0c;先来看一下一个文件在磁盘里面是怎么存储的。   首先一个物理的圆盘形状且多层的一个磁盘会被逻辑化成为一个数组&#xff0c;找到一个文件在这个数组里面叫做…

JavaScript新加入的**运算符,哪里有些不一样呢?

JavaScript语法(四)&#xff1a;新加入的**运算符&#xff0c;哪里有些不一样呢&#xff1f; 上一节课我们已经给你介绍了表达式的一些结构&#xff0c;其中关于赋值表达式&#xff0c;我们讲完了它的左边部分&#xff0c;而留下了它右边部分&#xff0c;那么&#xff0c;我们…

HarmonyOS4.0系统性深入开发14AbilityStage组件容器

AbilityStage组件容器 AbilityStage是一个Module级别的组件容器&#xff0c;应用的HAP在首次加载时会创建一个AbilityStage实例&#xff0c;可以对该Module进行初始化等操作。 AbilityStage与Module一一对应&#xff0c;即一个Module拥有一个AbilityStage。 DevEco Studio默…

1-并发编程线程基础

什么是线程 在讨论什么是线程前有必要先说下什么是进程&#xff0c;因为线程是进程中的一个实体&#xff0c;线程本身是不会独立存在的。 进程是代码在数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;线程则是进程的一个执行路径&#…

创意与技术的结晶:AI魔法绘图与中文描述的完美结合

在人类文明的长河中&#xff0c;创意与技术一直是推动发展的重要动力。随着科技的日新月异&#xff0c;人工智能&#xff08;AI&#xff09;在创意领域的应用逐渐崭露头角&#xff0c;而AI魔法绘图与中文描述的结合&#xff0c;更是将这一趋势推向了新的高度。AI魔法绘图是一种…

各类Java对象

相关概念的混淆 在某一时间段&#xff0c;人们对某种编程困境感到烦恼&#xff0c;不少人脑中产生了一种新开发方式的概念 一些代表人物提出了他们的意见&#xff0c;而同一时期可能又不少人对同一问题&#xff0c;用自己的不同语言提出不同概念 如果又官方组织维护概念&#x…

外包干了3个多月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

初探ElasticSearch

1.什么是ElasticSearch&#xff1f; ElasticSearch简称ES&#xff0c;也成为弹性搜索&#xff0c;是基于Apache Lucene构建的开源搜索引擎。其实Lucene本身就是一款性能很好的开源搜索引擎工具包&#xff0c;但是Lucene的API相对复杂&#xff0c;而且掌握它需要很深厚的“内功…