sonar搭建(linux系统)

本文介绍了静态代码扫描在CI/CD流程中的重要作用,如何通过Sonarqube进行代码质量管理,包括快速定位错误、降低成本和提高软件可靠性。同时详细讲解了Sonarqube的工作原理、安装配置以及数据库支持情况。
摘要由CSDN通过智能技术生成

前景

静态代码扫描是CI/CD中重要的一环,可以在代码提交到代码仓库之后,在CI/CD流程中加入代码扫描步骤,从而及时地对代码进行质量的检查。这可以有效地降低后期维护成本,优化产品质量,提高产品交付速度。同时,静态代码扫描还可以将代码问题自动通知给开发人员,使得问题得到及时发现和解决。

通俗地说,通过将静态代码分析融入到CI/CD流程中,可以进一步提高软件开发过程的效率和质量,帮助团队快速交付高质量的产品。

静态代码分析

静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如:参数不匹配、有歧义的嵌套语句、错误的递归、非法计算、可能出现的空指针引用等等。

作用一个

  • 快速定位代码隐藏错误和缺陷;
  • 提高软件可靠性并节省软件开发和测试成本;

java代码分析

python代码分析

 

Sonarqube介绍

是一款开源的代码质量管理平台,用于检测代码中的错误,漏洞和代码规范,通过插件的机制,可以基于现有的Gitlab、Jenkins 集成、以便在项目拉取后进行连续的代码检查。旨在提供一个完整的代码质量管理解决方案。

优势

  • 支持众多计算机编程语言
  • 通过插件机制能集成IDE、Jenkins、Git等
  • 内置大量常用代码检查规则
  • 支持定制开发规则
  • 可视化界面
  • 支持从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目

框架

  • 数据库层:Sonarqube使用一个数据库来存储所有的代码质量数据。
  • 应用程序层:Sonarqube的应用程序层包括一系列基于Java的Web应用程序,这些应用程序负责收集数据、分析代码和生成报告等任务。
  • 插件层:Sonarqube的插件层是一个可扩展的架构,它允许用户安装和使用各种不同的插件来增强Sonarqube的功能和灵活性。
  • 数据采集层:Sonarqube支持多种不同的代码仓库和版本控制系统,包括SVN、Git、Mercurial和ClearCase等。使用这些数据采集插件,Sonarqube可以轻松地从不同的代码库中收集数据。

工作原理

  1. 代码收集:首先,Sonarqube向代码仓库请求代码,并将代码下载到本地。
  2. 代码分析:然后,Sonarqube使用其内置的代码分析器分析代码并生成有关代码质量的重要信息,例如代码复杂性、代码重复性、代码测试覆盖率等。
  3. 数据存储:Sonarqube将收集的数据存储在其数据库中,以供后续使用。
  4. 报告生成:Sonarqube使用其内置的报告生成器生成各种数据可视化图表、报告和警告,并将其呈现给用户。
  5. 反馈和持续改进:用户可以使用Sonarqube提供的反馈功能来共享意见和建议,以改善代码质量。此外,Sonarqube还提供了持续集成和持续交付等功能,以帮助团队在代码开发过程中不断改进代码质量。

sonarqube7.8版本支持MS SQLserver、Oracle、Postgresql、MySQL四种数据库,但是从7.8版本之后,sonarqube不再支持MySQL数据库,

部署 

 环境要求

软件

版本

jdk

17

postgersql

12.1

sonarqube

10.1

下载地址

Code Quality, Security & Static Analysis Tool with SonarQube | Sonar

 

 本次选择10.1社区版本安装(点击下载后,先进行后续操作,等下载完成后上传至linux服务器)

 

查看官方文档

最小配置要求

 jdk版本

 

 postgresql版本

安装

安装docker
yum install docker

docker version

#启动docker服务
systemctl start docker
systemctl status docker
systemctl enable docker

 postgresql安装
#此处直接使用docker安装
#默认用户名是 postgres  ,密码是123456

docker run --name postgres -v dv_pgdata:/var/lib/postgresql/data --restart=always -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:12.1

#查看服务
docker ps -a

安装jdk17

(请参考如下链接)

Linux安装java17-CSDN博客

 在PostgreSQL中新建sonar数据库:
docker exec -it postgres bash
su postgres
psql -U postgres -W
123456
CREATE DATABASE sonar;

 上传下载完的sonarqube安装包到服务器

 解压
unzip sonarqube-10.1.0.73491.zip
mv sonarqube-10.1.0.73491 sonarqube-10.1.0
创建用户
# 创建sonar用户,sonar不能用root启动,否则报错
useradd sonar
#设置密码
passwd sonar

 设置权限
#(文件目录根据自己实际进行修改)
chown -R sonar /app/sonar/sonarqube-10.1.0
修改配置文件

vim /app/sonar/sonarqube-10.1.0/conf/sonar.properties
sonar.jdbc.username=postgres
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
修改JVM参数(sonar版本要求)
-Xmx 和 -Xms 是 Java 虚拟机(JVM)的参数,用于设置 Java 程序的堆内存的最大值(maximum heap size)和初始值(initial heap size)。
-Xmx 参数用于设置 Java 程序的堆内存的最大值。
-Xms 参数用于设置 Java 程序的堆内存的初始值


sonar.web.javaOpts=-Xmx2g -Xms1g -XX:+HeapDumpOnOutOfMemoryError

 sonar默认自带了ES,所以需要修改配置,防止启动报错:

vim /etc/security/limits.conf
# 追加内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

vim /etc/security/limits.d/90-nproc.conf
# 追加内容
* soft nproc 4096

vim /etc/sysctl.conf
# 追加内容
vm.max_map_count=655360

启动sonar

(sonar的默认端口是9000)

切换至sonar用户

su sonar
cd /app/sonar/sonarqube-10.1.0/bin/linux-x86-64

启动

sh sonar.sh start

停止

sh sonar.sh  stop

查看日志

tail -f /app/sonar/sonarqube-10.1.0/logs/sonar.log

登录页面

默认用户名admin密码admin 

修改密码

可以使用啦 !!!

汉化 

 选择版本

 

 将下载好的jar包放入 /app/sonar/sonarqube-10.1.0/extensions/plugins 下

重启sonar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值