SonarQube安装与Java、PHP代码质量分析扫描

news2024/12/26 22:28:08

文章目录

    • 1、下载安装
      • 1.1、SonarQube下载
      • 1.2、SonarQube安装
      • 1.3、SonarQube中文汉化
      • 1.4、SonarScanner扫描器
    • 2、扫描项目
      • 2.1、java代码扫描
      • 2.2、php代码扫描

1、下载安装

SonarQube负责存储代码数据、收集数据、分析代码和生成报告等。

1.1、SonarQube下载

下载地址:https://www.sonarsource.com/products/sonarqube/downloads/
本文下载9.9LTS版本:sonarqube-9.9.1.69595.zip

1.2、SonarQube安装

官方安装使用教程:https://docs.sonarsource.com/sonarqube/latest/try-out-sonarqube/

  • 1、sonarqube-9.9.1.69595.zip版本需要JDK 17
  • 2、解压后,命令行进入对应的目录
# Windows系统, 执行命令:StartSonar.bat
D:\sonarqube\bin\windows-x86-64\StartSonar.bat
 
# 其它系统, 使用非root用户执行命令:sonar.sh
/opt/sonarqube/bin/<OS>/sonar.sh console

当前版本默认使用Elasticsearch作为内嵌数据库

  • 3、访问地址:http://localhost:9000
    默认帐号密码
login: admin
password: admin

1.3、SonarQube中文汉化

登录管理后台,菜单栏administrator -> marketplace,Plugins的输入框输入“chinese”,点击"install",安装完成后,会提示重启,重启后界面会自动变成中文版本。
在这里插入图片描述

1.4、SonarScanner扫描器

SonarScanner下载地址:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/
SonarScanner负责扫描代码,并提交给Sonarqube,是在项目中没有特定扫描器时(java有Maven插件和Gradle插件)使用的扫描器。
SonarScanner下载后解压可用,需要把启动脚本配置到环境变量PATH中(windows:sonar-scanner.bat,Linux:sonar-scanner)

扫描参数可配置在项目根目录中sonar-project.properties

# must be unique in a given SonarQube instance
sonar.projectKey=my:project

# --- optional properties ---

# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.
 
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

sonar-project.properties的参数也可以在运行时输入:

mvn clean verify sonar:sonar -Dsonar.projectKey=test_project -Dsonar.host.url=http://localhost:9000  -Dsonar.login=sqp_xxxxxxxx

2、扫描项目

本文以本地项目代码扫描为例

2.1、java代码扫描

  • 1、选择手工创建项目在这里插入图片描述
  • 2、设置项目名称
    在这里插入图片描述
  • 3、选择本地分析项目
    在这里插入图片描述
  • 4、创建令牌,后边运行扫描器时使用这个令牌
    在这里插入图片描述
    在这里插入图片描述
  • 5、构建技术选择"Maven"
    在这里插入图片描述
    到这一步就完成项目的创建了,下一步是启动扫描器,把源码提交给 SonarQube 分析。

Java代码扫描有两种方式

  • 方式1、使用Maven 构建扫描
mvn clean verify sonar:sonar -Dsonar.projectKey=test_java -Dsonar.host.url=http://localhost:9000  -Dsonar.login=sqp_d02db1db74c3d45b6d3c582795fae73ea6de036f
  • 方式2、使用sonar-scanner扫描器
sonar-scanner.bat -D"sonar.projectKey=test_java" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=sqp_d02db1db74c3d45b6d3c582795fae73ea6de036f" -D"sonar.java.binaries=*/*/target/*"

2.2、php代码扫描

PHP扫描项目创建的方式与Java项目类似,只是在第5步时选择“其他 (比如 JS,TS,Go,Python,PHP…)”
然后进入代码目录,php目前只能使用sonar-scanner扫描器:

sonar-scanner.bat -D"sonar.projectKey=test_php" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=sqp_e93d1d793b88a7fc4c8c551c25dcfe938c4d74c4"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML+CSS+JavaScript:渲染电商站购物车页面

一、需求 根据下图渲染购物车页面 二、代码素材 以下是缺失JS部分的代码&#xff0c;感兴趣的小伙伴可以先自己试着写一写 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatib…

木马免杀(篇二)shellcode 学习

木马免杀&#xff08;篇二&#xff09;shellcode 学习 —— shellcode介绍 shellcode 是一段利用软件漏洞进行执行的机器码&#xff0c; 通常用汇编语言编写并被翻译为十六进制操作码&#xff0c;因常被攻击者用于获取系统的命令终端shell 接口&#xff0c;所以被称为 shellc…

NLP语言模型概览

语言模型结构分类 Encoder-Decoder&#xff08;Transformer&#xff09;: Encoder 部分是 Masked Multi-Head Self-Attention&#xff0c;Decoder 部分是 Casual Multi-Head Cross-Attention 和 Casual Multi-Head Self-Attention 兼具。比如T5&#xff0c;BART&#xff0c;MA…

HCIP STP(生成树)

目录 一、STP概述 二、生成树协议原理 三、802.1D生成树 四、STP的配置BPDU 1、配置BPDU的报文格式 2、配置BPDU的工作过程 3、TCN BPDU 4、TCN BPDU的工作过程 五、STP角色选举 1、根网桥选举 2、根端口选举 3、指定端口选举 4、非指定端口选举 六、STP的接口状…

免费思维导图软件有哪些?精选6款免费好用、功能强大的思维导图软件!

相信大家或多或少都听说过思维导图以及它的强大作用&#xff0c;它简单又高效&#xff0c;能够将散点链接成为相关联的、有逻辑的整体&#xff0c;更好地梳理和管理知识。不管你有没有真正体验过思维导图带来的神奇效果&#xff0c;相信你一定也在寻找一款免费好用的思维导图软…

找不到msvcp120dll,无法继续执行代码,怎么解决?

当msvcp120.dll文件丢失或找不到时&#xff0c;会导致无法运行使用C编写的程序。这可能是由于以下原因导致的&#xff1a; 1.删除或移动文件&#xff1a;如果你不小心删除了或移动了msvcp120.dll文件&#xff0c;你将无法找到它并加载它&#xff0c;从而导致程序无法正常运行。…

2023上半年京东奶粉行业品牌销售排行榜(京东数据分析平台)

近年来&#xff0c;受新生儿人口数量下降的影响&#xff0c;婴幼儿奶粉市场的需求量萎缩&#xff0c;市场由增量竞争转为存量竞争。根据鲸参谋电商数据分析平台的数据显示&#xff0c;今年上半年&#xff0c;京东婴幼儿奶粉市场的销量将近4400万&#xff0c;环比下降约19%&…

AtcoderABC224场

A - TiresA - Tires 题目大意 题目要求判断给定字符串S的末尾是以"er"还是"ist"结尾&#xff0c;并输出对应的结果。 思路分析 使用substr函数获取字符串S的末尾2个字符或3个字符。 判断获取到的子字符串是否等于"er"或"ist"&#…

赛事 | 第25届中国机器人及人工智能大赛全国决赛榜单发布

第25届中国机器人及人工智能大赛成功举办 2023年6月13日至14日&#xff0c;第二十五届中国机器人及人工智能大赛于海南科技职业大学成功举办。大赛由中国人工智能学会主办&#xff0c;共有来自清华大学、哈尔滨工业大学、中国科学技术大学、西安交通大学等500多所高校进入全国…

Vue2:路由

Vue2&#xff1a;路由 Date: May 28, 2023 Sum: vue-router基本使用、高级用法 单页面应用程序 概念&#xff1a;SPA【Single Page Application】是指所有的功能都在一个html页面上实现 案例&#xff1a; 单页应用网站&#xff1a; 网易云音乐 https://music.163.com/ 多页…

8.10 用redis实现缓存功能和Spring Cache

什么是缓存? 缓存(Cache), 就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。 通过Redis来缓存数据&#xff0c;减少数据库查询操作; 逻辑 每个分类的菜品保存一份缓存数据 数据库菜品数据有变更时清理缓存数据 如何将商品数据缓存起…

Spring AOP(AOP概念,组成成分,实现,原理)

目录 1. 什么是Spring AOP&#xff1f; 2. 为什么要用AOP&#xff1f; 3. AOP该怎么学习&#xff1f; 3.1 AOP的组成 &#xff08;1&#xff09;切面&#xff08;Aspect&#xff09; &#xff08;2&#xff09;连接点&#xff08;join point&#xff09; &#xff08;3&a…

Qt画波浪球(小费力)

画流动波浪 #ifndef WIDGET3_H #define WIDGET3_H#include <QWidget> #include <QtMath> class widget3 : public QWidget {Q_OBJECT public:explicit widget3(QWidget *parent nullptr);void set_value(int v){valuev;}int get_value(){return value;} protecte…

FineReport 使用汇总(不定期更新)

1&#xff0c;下载地址 免费下载FineReport - FineReport报表官网 这里注意 2&#xff0c;后台统计 sql 还是需要自己写 就会有数据 而直接查询表&#xff0c; 没有数据 不过&#xff0c;可能是我不会用。还需要再研究。

Java ThreadLocal是什么

文章目录 引子&#xff1a;SimpleDateFormat类ThreadLocal是什么ThreadLocal 的另一个用途**总结**ThreadLocal的两大用途ThreadLocal 的源代码ThreadLocalMapThreadLocalMap 的问题ThreadLocal的key为什么设置成弱引用&#xff1f;value为什么不是弱引用&#xff1f;Thread、T…

ubuntu 安装 nvidia 驱动

ubuntu 安装 nvidia 驱动 初环境与设备查询型号查询对应的驱动版本安装驱动验证驱动安装结果 本篇文章将介绍ubuntu 安装 nvidia 驱动 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统&#xff1a;ubuntu 设备&#xff1a;Nvidia GeForce RTX 4090 查询型…

每天一道leetcoed:剑指 Offer 28. 对称的二叉树(适合初学者树)

今日份题目&#xff1a; 请实现一个函数&#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样&#xff0c;那么它是对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,nu…

【打印100之内的素数——筛选法】

打印100之内的素数——筛选法 筛选法 1.题目分析 素数&#xff1a;约数为1和该数本身的数字称为素数&#xff0c;即质数 2.方法解析 筛选法&#xff1a;又称为筛法。先把N个自然数按次序排列起来。1不是质数&#xff0c;也不是合数&#xff0c;要划去。第二个数2是质数留下来…

[C++ 网络协议] 套接字

目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…

Linux Linux系统上C程序的编译与调试

一、环境配置 在Linux操作系统中&#xff0c;打开终端&#xff0c;以管理员root模式登录 1.更新&#xff1a;输入命令apt update 2.下载vim&#xff1a;输入命令apt install vim -y 3.下载gcc&#xff1a;输入命令apt install gcc -y 4.下载g&#xff1a;输入命令apt install …