如何使用SonarQube+ SonarScanner分析项目

news2024/11/23 7:09:30


 

前言: 六一儿童节要玩程序员的玩具,动手试一试挺有意思的


目录

1. 安装sonarqube 

2. 获取Sonarqube令牌

3. 下载安装SonarScanner 

5. SonarScanner分析项目

7. 查看分析结果

8.常见问题


 版本信息:

  • Sonarqube7.6
  • Sonar-scanner-4.8.0

1. 安装sonarqube 并获取令牌

Linux 下安装SonarQube icon-default.png?t=N4P3https://blog.csdn.net/Beijing_L/article/details/130772649?spm=1001.2014.3001.5502

2. 获取Sonarqube令牌

1. 访问 http://[sonar_pi]:9000  并使用默认用户admin登录,密码也是 admin

 2. 右上角选择我的账号 - 安全

 3. 输入令牌名称生成令牌后, 并记录令牌信息,后面SonarScanner需要使用

 

3. 安装SonarScanner 

1. 下载sonarscanner

https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/

 

2. 修改conf/sonar-scanner.properties 文件,配置sonar服务器信息, 当sonarscanner扫描项目后会将扫描信息上传到配置的服务器

#----- Default SonarQube server
sonar.host.url=http://10.0.192.21:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8

3. 将bin文件夹的全路径添加到环境变量path下,例如

  • 先创建sonar_scanner变量,如下图
  • 在path下增加sonar_scanner变量:%SONAR_SCANNER_HOME%\bin;

 

4. 配置要扫描的项目

在项目根目录下增加sonar-project.properties配置信息

sonar.projectKey=STARFSA-HLJ
sonar.projectName=STARFSA-HLJ
sonar.projectVersion=4.0.1
sonar.sources=.
sonar.java.binaries=**/target/classes

其中

  •  sonar.projectKey配置为项目KEY ,用户标识唯一
  • sonar.projectName配置项目名称
  • sonar.projectVersion=配置项目版本
  • sonar.sources配置相对于sonar-project.properties路径的文件
  • sonar.java.binaries配置扫描的所需要的class 文件路径

5. SonarScanner分析项目

使用sonar-scanner -Dsonar.login=sonar口令扫描项目

G:\GITLIB\SMSCA>
G:\GITLIB\SMSCA>sonar-scanner -Dsonar.login=b8741b83ed9141f0011fe2cfbd09ca2360769b45
INFO: Scanner configuration file: D:\Soft\sonar-scanner-4.8.0.2856-windows\bin\..\conf\sonar-scanner.properties
INFO: Project root configuration file: G:\GITLIB\SMSCA\sonar-project.properties
INFO: SonarScanner 4.8.0.2856
INFO: Java 11.0.17 Eclipse Adoptium (64-bit)
INFO: Windows 7 6.1 amd64
INFO: User cache: C:\Users\10001874\.sonar\cache
INFO: Analyzing on SonarQube server 7.6.0
INFO: Default locale: "zh_CN", source code encoding: "GBK" (analysis is platform dependent)
INFO: Load global settings
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/C:/Users/10001874/.sonar/cache/993f707e3af7ba4f46f12103912
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
INFO: Load global settings (done) | time=76ms
INFO: Server id: 9D2906DF-AXTZNwmu9mGkYmmLG0AI
INFO: User cache: C:\Users\10001874\.sonar\cache
INFO: Load/download plugins
INFO: Load plugins index
INFO: Load plugins index (done) | time=46ms
INFO: Plugin [l10nzh] defines 'l10nen' as base plugin. This metadata can be removed from manifest of l10n plugins since version 5.2.
INFO: Load/download plugins (done) | time=96ms
INFO: Process project properties
INFO: Execute project builders
INFO: Execute project builders (done) | time=4ms
INFO: Project key: STARIBOSS-5GCA
INFO: Base dir: G:\GITLIB\SMSCA
INFO: Working dir: G:\GITLIB\SMSCA\.scannerwork
INFO: Load project settings
INFO: Load project settings (done) | time=797ms
INFO: Load project repositories
INFO: Load project repositories (done) | time=528ms
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=43ms
INFO: Load active rules
INFO: Load active rules (done) | time=616ms
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=23ms
INFO: Indexing files...
INFO: Project configuration:
INFO: 10739 files indexed
INFO: Quality profile for java: Sonar way
INFO: Quality profile for xml: Sonar way
INFO: ------------- Run sensors on module STARIBOSS-5GCA
INFO: Sensor JavaSquidSensor [java]
INFO: Configured Java source version (sonar.java.source): none
INFO: JavaClasspath initialization
WARN: Bytecode of dependencies was not provided for analysis of source files, you might end up with less precise results. Bytecode can
INFO: JavaClasspath initialization (done) | time=154ms
INFO: JavaTestClasspath initialization
INFO: JavaTestClasspath initialization (done) | time=5ms
INFO: Java Main Files AST scan
INFO: 4681 source files to be analyzed
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/proxy/ca-frontend-service/src/main/java/com/star/sms/business/provision/ft
coding to be used using property 'sonar.sourceEncoding'.
INFO: 48/4681 files analyzed, current file: G:\GITLIB\SMSCA\proxy\ca-frontend-service\src\main\java\com\star\sms\business\provision\se
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/proxy/ca-frontend-service/src/main/java/com/star/sms/business/provision/se
t or configure the encoding to be used using property 'sonar.sourceEncoding'.
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/proxy/ca-frontend-service/src/main/java/com/star/sms/business/provision/se
re the encoding to be used using property 'sonar.sourceEncoding'.
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/proxy/ca-frontend-service/src/main/java/com/star/sms/business/provision/se
r configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: 242/4681 files analyzed, current file: G:\GITLIB\SMSCA\proxy\fiveg_interface\src\main\java\com\star\sms\service\provision\dto\fi
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/sms/basic/common/src/main/java/com/star/common/interceptor/AbstractMethodC
 be used using property 'sonar.sourceEncoding'.
INFO: 789/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\common\src\main\java\com\star\common\interceptor\AbstractMethod
INFO: 998/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\electronic\annotation\PrintAc
INFO: 1647/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\model\customer\CmInfo.java
INFO: 2003/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\model\note\baiwang\tcd\param
INFO: 2427/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\model\product\condition\cata
INFO: 3062/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\model\resource\condition\rep
INFO: 3732/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\model\resource\dto\five\g\re
INFO: 4412/4681 files analyzed, current file: G:\GITLIB\SMSCA\sms\basic\domain\src\main\java\com\star\sms\service\accept2\orderDisplay
INFO: 4681/4681 source files have been analyzed
INFO: Java Main Files AST scan (done) | time=103340ms
INFO: Java Test Files AST scan
INFO: 0 source files to be analyzed
INFO: Java Test Files AST scan (done) | time=4ms
INFO: 0/0 source files have been analyzed
INFO: Sensor JavaSquidSensor [java] (done) | time=103976ms
INFO: Sensor PmdSensor [pmd]
INFO: Sensor PmdSensor [pmd] (done) | time=5ms
INFO: Sensor JaCoCo XML Report Importer [jacoco]
INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=23ms
INFO: Sensor SurefireSensor [java]
INFO: parsing [G:\GITLIB\SMSCA\target\surefire-reports]
INFO: Sensor SurefireSensor [java] (done) | time=4ms
INFO: Sensor JaCoCoSensor [java]
INFO: Sensor JaCoCoSensor [java] (done) | time=4ms
INFO: Sensor JavaXmlSensor [java]
INFO: 15 source files to be analyzed
WARN: Invalid character encountered in file G:/GITLIB/SMSCA/.idea/workspace.xml at line 418 for encoding GBK. Please fix file content
INFO: Sensor JavaXmlSensor [java] (done) | time=262ms
INFO: 15/15 source files have been analyzed
INFO: Sensor HTML [web]
INFO: Sensor HTML [web] (done) | time=32ms
INFO: Sensor XML Sensor [xml]
INFO: 15 source files to be analyzed
WARN: Unable to analyse file file:///G:/GITLIB/SMSCA/.idea/workspace.xml;
INFO: Sensor XML Sensor [xml] (done) | time=188ms
INFO: 15/15 source files have been analyzed
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=848ms
INFO: ------------- Run sensors on project
INFO: Sensor Java CPD Block Indexer
INFO: Sensor Java CPD Block Indexer (done) | time=1434ms
INFO: SCM provider for this project is: git
INFO: 4696 files to be analyzed
INFO: 986/4696 files analyzed
INFO: 2302/4696 files analyzed
INFO: 3574/4696 files analyzed
INFO: 4683/4696 files analyzed
WARN: Missing blame information for the following files:
WARN:   * .idea/vcs.xml
WARN:   * .idea/shelf/Uncommitted_changes_before_Checkout_at_2023_5_16_13_15__Changes_.xml
WARN:   * .idea/uiDesigner.xml
WARN:   * .idea/runConfigurations.xml
WARN:   * sms/basic/domain/src/main/java/com/star/sms/model/customer/queryCondition/ContractSearchCondition.java
WARN:   * .idea/workspace.xml
WARN:   * .idea/misc.xml
WARN:   * .idea/gradle.xml
WARN:   * proxy/ca-frontend-service/build/resources/main/spring/business-beans-core.xml
WARN:   * .idea/compiler.xml
WARN:   * .idea/jarRepositories.xml
WARN:   * proxy/ca-frontend-service/build/resources/main/spring/sendInterface-servlet.xml
WARN:   * platform/platform-boot-config/build/resources/main/logback.xml
WARN: This may lead to missing/broken features in SonarQube
INFO: 1194 files had no CPD blocks
INFO: Calculating CPD for 3487 files
INFO: CPD calculation finished
INFO: Analysis report generated in 6030ms, dir size=23 MB
INFO: Analysis report compressed in 9210ms, zip size=14 MB
INFO: Analysis report uploaded in 2953ms
INFO: ANALYSIS SUCCESSFUL, you can browse http://127.0.0.1:9000/dashboard?id=STARIBOSS-5GCA
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://127.0.0.1:9000/api/ce/task?id=AYgtdRwEstOHat1LEBpi
INFO: Analysis total time: 3:10.386 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 3:11.760s
INFO: Final Memory: 21M/77M
INFO: ------------------------------------------------------------------------
请按任意键继续. . .

6. 查看分析结果

分析结束后,分析信息会上传到sonar服务器上, 此时访问服务器会显示有个后台任务正在处理

分析报告

 等待几分钟后查看项目信息

 

8.常见问题

1)AnalysisException:Please provide compiled classes of your project with sonar.java.binaries property

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 3:02.725s
INFO: Final Memory: 14M/54M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
org.sonar.java.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
        at org.sonar.java.JavaClasspath.init(JavaClasspath.java:66)
        at org.sonar.java.AbstractJavaClasspath.getElements(AbstractJavaClasspath.java:280)
        at org.sonar.java.SonarComponents.getJavaClasspath(SonarComponents.java:175)
        at org.sonar.java.JavaSquid.<init>(JavaSquid.java:82)
        at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:91)

问题原因: sonarqube的sonar-java插件从4.1.2开始,强制要求配置sonar.java.binaries参数

2)MySQLSyntaxErrorException: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. 

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

问题原因:mysql中的innodb日志文件配置过小,增加配置的值后问题可解决 

3)PacketTooBigException: Packet for query is too large (16738132 > 4194304).

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (16738132 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3681)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2512)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)

 问题原因:MySQL会限制Server接受的数据包大小。有时候插入、更新或查询时数据包的大小,会受 max_allowed_packet 参数限制,当大于配置的值的时候就会出上述错误, 通过命令可查询配置的信息并修改配置信息

show VARIABLES like '%max_allowed_packet%';


set global max_allowed_packet = 2* 1024 * 1024*10;

上一篇:Linux 下安装SonarQube (版本sonarqube7.6)

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

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

相关文章

[操作系统]关于进程的管理

首先注明:仍然是复习阶段,所以和课本可能有些许冲突和不同,只是图谱来自于王道考研2022操作系统,旨在快速梳理操作系统的基本知识 1.进程的定义,概念和特征: 多道程序环境下,多个程序并发执行,因此他们将会失去封闭性,不适宜于管理,所以引入了进程这种概念. 进程是程序的一次…

Python自动化测试:pytest实现关键字驱动

在上一篇文章中&#xff0c;我编写了一个非常简单的关键字驱动程序&#xff0c; 不过这个程序只是跑通了功能&#xff0c;还有很多可以优化的地方&#xff0c;这篇文章我想通过 pytest 来简化自动化测试用例的编写&#xff0c;使用的是比较基础的 pytest 功能。 下篇文章我再写…

spark安装部署

spark安装部署 需要指导私信 所有节点安装scala&#xff0c;安装scala需要安装openjdk-8-jre&#xff08;当前用户如果没有sudo权限可将其加入sudo组里&#xff09;,以ubuntu2204-LTS为例&#xff1a; $ sudo apt update $ sudo apt-get install openjdk-8-jre-headless -y (红…

【03Eclipse 窗口说明】对每个窗口和视图的功能和用途的详细说明导航栏编辑器窗口项目资源管理器

Eclipse 窗口说明 简介 Eclipse 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的窗口和视图来支持开发工作。本教程将详细介绍 Eclipse 主要窗口和常见视图的功能和用途。 主要窗口 1. 导航栏 导航栏位于 Eclipse 窗口的顶部&#xff0…

Java学习路线(22)——测试框架Junit

一、单元测试概念 单元测试就是针对最小的功能单元编写测试代码&#xff0c;Java程序最小的功能单元是方法&#xff0c;因此&#xff0c;单元测试就是针对Java方法的测试&#xff0c;进而检查方法正确性。 二、Junit测试框架 &#xff08;一&#xff09;概念&#xff1a; Jun…

认识、使用 yarn

概念 npm 是前端开发过程中常常使用的命令&#xff0c;比如构建 Vue 项目&#xff0c;亦或下载 Vue 项目依赖但是该命令效率低下&#xff0c;且容易出错&#xff0c;有没有更好的解决方案呢?有&#xff0c;Yarn ta是一个快速、可靠且安全的 JS 包管理工具: 快速:Yamn 本地缓…

黑客松指南|如何快速注册参与Sui x KuCoin Labs Hackathon

由Sui和KuCoin Labs联合主办的夏季黑客松&#xff0c;将为开发者、设计师、创业者和区块链爱好者提供一个交流和合作的平台。参与者将有机会利用Sui的先进技术和KuCoin Labs的资源&#xff0c;开发创新的区块链应用和解决方案。 我们鼓励参与者围绕「基础设施和工具」、「NFT、…

如何使用Jemeter对HTTP进行接口压测?没有比这个更详细的教程

目录 前言 1、首先添加一线程组 2、因为是对HTTP接口进行压力测试&#xff0c;所以需要在线程组下添加一HTTP请求&#xff08;通过鼠标右键->添加->Sampler->HTTP请求 完成&#xff09; 3、紧接着就是对HTTP请求进行设置了&#xff0c;主要设置服务器名称或IP&#…

10年心路历程:一个女测试工程师功能测试转向自动化测试/开发

十年测试心路历程&#xff1a; 由于历史原因&#xff0c;大部分测试人员&#xff0c;最开始接触都是纯功能界面测试&#xff0c;随着工作年限&#xff0c;会接触到一些常用测试工具&#xff0c;比如抓包&#xff0c;数据库&#xff0c;linux等。 我大学学的计算机专业&#xff…

【力扣刷题 | 第四天】 1.两数之和 454.四数之和

1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同…

【QT】解决继承QThread的子线程导致程序无法关闭主线程关闭太快导致子线程中的槽方法未执行

背景 使用串口进行通信 一共有三个线程 主线程负责界面的显示子线程1负责检测当前系统可用的串口子线程2负责差串口通信 子线程实现 在发生问题的最初&#xff0c;因为要一直检测当前系统的可用线程&#xff0c;所以线程1我使用继承自QThread实现的线程&#xff0c;其中重写ru…

github下载的项目如何上传到gitee

1、安装git 省略 2、github下载项目 如何注册、登录省略 3、上传到gitee 注册账号 省略 新建仓库 iot-plat创建过了&#xff0c;用iot-plat1演示 创建完的仓库 此处的https地址要记住&#xff0c;等会要用到 到本地项目目录 项目里面 Git命令操作 空白处右键&#xff…

CSP-S 第一轮笔试重点题

CSP-S提高组笔试题重点题汇总&#xff1a; 今天我给大家分享一些 CSP-S 第一轮笔试中的一些重点题&#xff0c;包含讲解。 第一题&#xff1a; 1.十进制小数13.375对应的二进制数是&#xff08;&#xff09;。 A.1101.011 B.1011.011 C.1101.101 D.1010.01 解析&#x…

一起学SF框架系列5.3-模块Beans-bean与Spring容器的交互方式

正常情况下&#xff0c;应用中的bean同spring容器关系如下图&#xff1a; 尽管应用bean是Spring容器创建并建立依赖关系&#xff0c;应用只需使用bean即可&#xff0c;因此对bean来说Spring容器就是无感知的&#xff08;无侵入编程&#xff09;。但是还是存在需求需要应用bea…

OkHttp 框架设计剖析(含面试题)

作者&#xff1a;Calculus_小王 概述 OKHttp是一个基于HTTP协议的网络请求框架&#xff0c;它支持HTTP/2协议&#xff0c;连接复用和连接池&#xff0c;缓存策略等功能。它的核心设计是拦截器&#xff08;Interceptor&#xff09;&#xff0c;它将请求的复杂逻辑切分成多个独立…

详解Java内部类、匿名内部类

内部类 内部类&#xff1a;类的第五个成员 1.定义&#xff1a;Java中允许将一个类A声明在另一个类B中&#xff0c;则类A就是内部类&#xff0c;类B称为外部类. 2.内部类的分类&#xff1a; 成员内部类&#xff08;静态、非静态 &#xff09; vs 局部内部类(方法内、代码块内、…

全网最强总结,Selenium自动化测试异常+处理总结,吐血整理...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 当测试工程师执行…

LVS负载均衡群集部署——DR模式

LVS负载均衡群集部署——DR模式 一、LVS-DR集群概述1、LVS-DR 工作原理2、LVS-DR数据包流量分析&#xff08;同一局域网&#xff09;3、LVS-DR中的ARP问题4、LVS-DR处理问题后的流量分析5、LVS-DR 特性 二、构建LVS-DR集群1、构建LVS-DR集群的步骤&#xff08;理论&#xff09;…

网工内推 | 网安专场,CISP认证优先,带薪年假,六险一金

01 MATRIX TECH &#x1f537;招聘岗位&#xff1a;安全工程师 &#x1f537;职责描述&#xff1a; 1、负责信息安全防护系统的日常管理 、监测和优化提升等安全运营工作&#xff0c;包括终端安全、防护、漏洞检测、补丁、入侵检测、拒绝服务攻击防护、源代码安全检查等&#…

cool-admin框架后端使用-node版本,线上宝塔部署

版本6.x 宝塔新建一个文件夹和创建好数据库&#xff0c;记录账号和密码&#xff0c;自行创建&#xff0c;不做说明 特别注意&#xff0c;如果用宝塔node管理那里运行&#xff0c;如果按照到有pm2的&#xff0c;要先卸载&#xff0c;不可以共存&#xff0c;会有冲突 cool-vue前端…