当前位置: 首页 > news >正文

sonarqube使用指北(二)-如何启动一次完整的本地扫描

一、引言

上一篇文章之后 我们应该已经成功的部署了sonarqube程序,这一篇文章我们就来进行一次简单的本地扫描。
优点:

  • 安全性:你可以在任何你信任的环境下执行扫描工作,而不是依赖外部安全能力
  • 即时反馈: 开发者可以在编写代码时获得即时反馈,了解其代码的质量和潜在问题,从而及时做出调整。
  • 灵活性: 开发者可以根据需要轻松地自定义扫描配置,以满足特定的需求或标准。

缺点:

  • 资源消耗: 在开发者的本地机器上运行静态代码分析工具可能会消耗大量的系统资源,特别是对于较大的代码库。

  • 依赖问题: 本地扫描的结果可能会受到开发者本地环境中使用的工具版本和配置的影响,这可能会导致与在其他环境中运行的扫描结果不一致。

二、基础配置

由于通常情况下扫描会在服务器上执行,本篇的配置会涵盖mac和linux 2个部分,方便本地调试和服务器定时任务。
这一篇主要通过手动操作来让大家了解一下流程,下一篇的话会通过代码来执行全自动扫描。

2.1 sonarqube配置

登录sonarqube,选择 项目 -〉新增项目 -〉手工
在这里插入图片描述这里我们需要为项目配置名称。
在这里插入图片描述注:项目标识是唯一的,不允许重复,而显示名是可以重复的,为了便于区分我们可以将显示名和项目标识设置为同一个。
这里我们创建test项目。
在这里插入图片描述选择本地。
在这里插入图片描述我们需要创建一个令牌来实现授权,这样本地执行的扫描才能通过权限认证。可以根据自己的需要来选择过期时间,如果项目长期存在可以选择永不过期。
注:

  • 这里的创建的令牌只允许在该项目使用,如果想偷懒的话需要创建全局令牌。
  • 令牌创建好后 只会显示一次,需要手动保存,如果未存储也不无法再次查看 ,只能重新创建。
  • 令牌的创建步骤不是每个项目都需要点击一次,实际上每个扫描项目只需要在扫描时提供一个可用的令牌即可。
    成功创建令牌之后点击下一步就会生成一个执行命令,sonarqube支持maven、gradle、.net和其他一些语言的运行方式。本地就以主流的java maven为例。
    在这里插入图片描述注:
  • projectKey就是对应的项目标识。
  • url为sonarqube的访问地址,可以根据实际环境自行修改。
  • login为上一步生成的令牌。
    sonarqube的配置在这就结束了,接下来我们只需要在项目根目录下执行该命令即可。

2.1.2 配置通用令牌

上一节说到,如果想要在所有项目中使用一个通用令牌的话,可以单独创建一个。
点击 头像 -〉我的账号 -〉安全

在这里插入图片描述这里我们示范创建一个test的扫描令牌,类型为全局分析令牌则表示该令牌只能用执行扫描任务,无其他的用户操作权限。
的

2.2 java配置

java环境的配置相对简单,本文就简单介绍一下相对复杂的mac下安装java13的场景。
直接使用brew进行安装可能会出现报错,下文提供一个手动安装的方法。
首先打开https://jdk.java.net/archive/ 找到mac对应jdk13版本进行下载。
解压文件得到在这里插入图片描述
此时右键访达 -》前往 ,输入 /usr/local/opt,将解压好的文件放到该目录下。为了方便将文件夹改名为jdk-13.0.2
注: /usr/local/opt为插件安装的默认地址,你也可以在你喜欢的任何地方作为安装目录。

由于文件是

相关文章:

  • jmeter接口导入方式
  • 鸿蒙 ohpm 的异常报错
  • STM32 ESP8266模块的曲折探索
  • 聚类分析|基于层次的聚类方法及其Python实现
  • Vue.js:构建高效且灵活的Web应用的利器
  • 黑客(网络安全)技术30天速成
  • 二进制源码部署mysql8.0.35
  • c++初阶------c++代码模块
  • c语言文件操作(下)
  • WEB测试之兼容性测试
  • cinder学习小结
  • JS——9大陷阱
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第3篇:静态结构搭建和分类实现,1. 整体结构创建【附代码文档】
  • 一键部署开源舆情系统
  • 开源博客项目Blog .NET Core源码学习(11:App.Core项目结构分析)
  • 【剑指offer】让抽象问题具体化
  • Effective Java 笔记(一)
  • es6(二):字符串的扩展
  • es的写入过程
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mongodb--安装和初步使用教程
  • react 代码优化(一) ——事件处理
  • 从零开始的无人驾驶 1
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 今年的LC3大会没了?
  • 面试遇到的一些题
  • 前端临床手札——文件上传
  • 前端面试之CSS3新特性
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 入门到放弃node系列之Hello Word篇
  • 实现简单的正则表达式引擎
  • 智能合约开发环境搭建及Hello World合约
  • Java总结 - String - 这篇请使劲喷我
  • linux 淘宝开源监控工具tsar
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #define
  • #Java第九次作业--输入输出流和文件操作
  • #pragma once
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (31)对象的克隆
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (四)c52学习之旅-流水LED灯
  • (原)本想说脏话,奈何已放下
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)