开发基础
开发基础笔记
mybatis-plus通用的service方法
通过jenkins配置前后端自动打包及发布
mybatis-plus实现分页的方式
Java极客技术公众号PDF
狂神说SpringBoot
Hashids java 版使用
SpringBoot
1、Web快速开发
2、结果集的封装
3、集成MyBatis实现数据库操作
4、Springboot @Validated参数校验
5、SpringBoot全局异常处理
6、拦截器HandlerInterceptor
7、集成Swagger实现API自动生成
8、集成knife4j实现API自动生成
9、Springboot集成MyBatis-Plus快速入门
10、springboot自定义注解及AOP切面使用
11、使用Shiro实现登陆和权限认证,基于MyBatis
12、集成SpringSecurity实现授权认证
13、SpringBoot集成EasyExcel实现数据导入与导出
14、Spring Task定时任务的实现
15、Quartz快速上手与实践
16、如何用代码实现Spring IOC
17、SpringBoot集成JWT,实现接口的鉴权交互
SpringCloud
Nacos作为服务注册中心
seata1.6.1 结合springcloud实现分布锁的技术笔记
一些技术博客推荐
前端面试相关
看这一篇就够了
java.util包常用的类和接口
CountDownLatch介绍与使用
Common-lang3使用入门
Hutool简单使用入门
lombok 介绍及基本使用方法
git项目统计成员代码行数和提交的次数
mysql 逗号分隔的数据 like查询
使用sonar进行代码质量检查
线上使用jmeter进行压测的时候,使用Arthas诊断工具排查响应慢的接口
php结合phpstudy8、vscode开启xdebug进行代码调试
node-red使用入门
本文档使用 MrDoc 发布
-
+
首页
使用sonar进行代码质量检查
> 一款代码质量的扫描工具,扫的挺细,在idea里下载 Alibaba Java Coding Guidelines的插件,也能对代码的规范进行扫描。 这个 Sonar更比大一些,不仅仅限于java代码的扫描,还可以扫前端vue python php 方面的代码. ## 相关的模块及关系 - Sonar :该工具的统称 - SonarLint:IDEA 的 Sonar 插件 - SonarQube:一个 Web 应用,服务端,统一管理 Sonar 扫描结果、扫描规则配置 - sonar-maven-plugin:Sonar 客户端,从 SonarQube 服务器获取扫描规则,并上传扫描结果到 SonarQube 平台 - sonar-scanner-cli:扫描器,通过把SonarQube里面每个project里的token配置进来后,然后执行sonar-scanner进行扫描,扫描完之后把自动刷新 SonarQube里的 扫描结果页面。 ## SonarQube 首先下载这个 工具,我使用的是7.8版本,因为7.9+版本 只支持java11+。 下载地址: ~~~ https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip ~~~ 如果想下载其他版本,可以试着把上面url里的7.8 改成你想要的版本号。 下载后直接解压使用。 ### 如何启动? 进行conf文件夹,打开sonar.properties 配置文件。 SonarQube的使用 依赖数据库,可以配置多种数据库,不过7.9及7.9之后的版本不再支持mysql数据库了,但是使用h2也挺方便的。 使用mysql数据库的配置如下: ~~~ sonar.jdbc.url=jdbc:mysql://localhost:3306/db_sonar2?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=123456 sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin ~~~ sonar.login=admin sonar.password=admin 代码是web登录页面里的用户名密码。 使用h2数据库: ~~~ sonar.embeddedDatabase.port=9092 sonar.login=admin sonar.password=admin ~~~ 配置完成后,进入bin目录,根据自己操作系统,选择相应用的文件夹。 我这里使用的是windowns,所以进入 bin\windows-x86-64 目录。 然后 启动 StartSonar.bat ### 新建一个VUE扫描项目 进入 http://localhost:9000 点击 右上角的 Log in ,接着 点击 旁边的加号 新建一个扫描项目  输入一个名字:  一路往下只到进入这个页面:  > 这里以扫描一个vue项目为例,系统提示在项目目录下执行以下命令进行扫描: ~~~ sonar-scanner.bat -D"sonar.projectKey=vue" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=14ff0d5a37d18c740aea58b579d6ce99c7160126" ~~~ sonar-scanner.bat 哪里来?? ## sonar-scanner扫描器 > 接上一章,sonar-scanner 扫描器需要下载。 下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 我这里下载的是4.8版本。 下载解压 后,将bin目录配置到 windows的环境变量path中。 然后回到 前端vue的项目 执行上述命令进行扫描。 看到下面的信息,说明扫描成功。 ~~~ INFO: CPD calculation finished INFO: Analysis report generated in 37394ms, dir size=50 MB INFO: Analysis report compressed in 243961ms, zip size=18 MB INFO: Analysis report uploaded in 1377ms INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=vue 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://localhost:9000/api/ce/task?id=AYaVs8crG4XmO-NOHuPl INFO: Analysis total time: 13:20.524 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 13:26.348s INFO: Final Memory: 14M/54M INFO: ------------------------------------------------------------------------ ~~~ >i SonarQube有3种方式 可以进行代码的扫描。 分别是: ① Maven方式执行代码检测 ② SonarScanner方式执行代码检测 ③ 集成Jenkins执行代码检测 上面刚刚介绍的就是使用 SonarScanner的方式进行代码检测。 SonarScanner也是本文主要介绍的重点,其他两种方式 自行了解。 ### 执行gradle项目? 和vue项目一样,只是在最后一步选择java项目:  需要集成 插件: ~~~ plugins { id "org.sonarqube" version "2.7" } ~~~ 但是我不想对现有项目 有过多的 侵入,所以同vue项目,使用SonarScanner进行代码方面的扫描。 第一步:进入sonar-scanner目录下,找到conf文件夹下面唯一的配置文件,做以下配置: ~~~ #----- Default SonarQube server sonar.host.url=http://localhost:9000 #----- Default source code encoding sonar.sourceEncoding=UTF-8 ~~~ 第二步:进入java工程目录,新建sonar-project.properties ,内容如下: ~~~ sonar.projectKey=java sonar.projectName=java #sonar.projectVersion=1.0 sonar.sources=./src sonar.sourceEncoding=UTF-8 #sonar.language=java sonar.java.binaries=. sonar.login=14ff0d5a37d18c740aea58b579d6ce99c7160126 ~~~ 第三步:回到项目目录下,执行: ~~~ sonar-scanner.bat ~~~ >d projectKey和sonar.login 的值 ,请根据实现情况进行修改!!! 看到如下信息,代表扫描成功: ~~~ INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AYaV-TW_G4XmO-NOHuPs INFO: Analysis total time: 4:13.070 s INFO: ------------------------------------------------------------------------ INFO: EXECUTION SUCCESS INFO: ------------------------------------------------------------------------ INFO: Total time: 4:29.569s INFO: Final Memory: 19M/70M INFO: ------------------------------------------------------------------------ ~~~ 扫描完成后,在web页面会自动将扫描结果 刷新出来。  153个bug 249个漏洞 4.4K,也就是4400个 规范问题。 需要90人天去改造。 > 引用 https://blog.csdn.net/backbug/article/details/114977715 https://blog.csdn.net/qq_32077121/article/details/125913141
superadmin
2023年2月28日 14:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码