gitlab部署及整合Jenkins持续构建(三)sonarqube9.9安装和使用(一步一坑)

news2024/9/24 7:20:09

文章目录

  • postgresql13.0安装
    • 1、配置postgresql数据库
    • 2、进入postgresql创建数据库
  • 代码质量管理平台--sonarqube安装
    • 1、前置依赖+下载
    • 2、安装unzip并解压sonarqube并移动到`/usr/local`:
    • 3、修改sonarqube相应的配置
    • 4、新增用户,并将目录所属权赋予该用户:
    • 5、启动:
    • 6、界面访问+登录
    • 7、在界面产生令牌+sonarqube分析项目代码
  • 可能出现的问题
    • 关于sonarqube安装的前置问题
    • sonarqube启动不起来/启动后马上关闭
    • 执行`mvn sonar:sonar \`报错`BUILD FAILURE`

postgresql13.0安装

官网给出的各种环境下安装postgresql步骤:https://www.postgresql.org/download/

CentOS7+jdk17为例:
在这里插入图片描述

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo yum install -y postgresql13-server

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

1、配置postgresql数据库

yum安装完,默认的pgsql-13的数据目录在/var/lib/pgsql/13/data/
除非/var目录可用空间很大,否则需要修改数据目录

#创建数据目录&修改属主属组
mkdir -p /data/postgresql-13.0/
chown postgres: -R /data/postgresql-13.0/
 
#初始化pgsql(指定数据目录)
sudo -u postgres /usr/pgsql-13/bin/initdb --encoding=UTF-8 --username=postgres --pgdata=/data/postgresql-13.0/data
#--encoding 字符集
#--username 启动用户
#--pgdata 数据目录(数据目录如已存在会报错)

在这里插入图片描述

记录配置文件路径,修改listen_addresses = '*',postgresql启动参数

vim /data/postgresql-13.0/data/postgresql.conf

在这里插入图片描述

定义哪些服务器、可以用什么样的方式访问postgresql

vim /data/postgresql-13.0/data/pg_hba.conf   
# 如下,允许所有库被远程连接,需要账密验证
# host     all            all             0.0.0.0/0               md5

在这里插入图片描述

修改service文件(修改数据目录)

vim /usr/lib/systemd/system/postgresql-13.service   #修改后:Environment=PGDATA=/data/postgresql-13.0/data/
systemctl daemon-reload

在这里插入图片描述

#启动postgresql-13
systemctl start postgresql-13

2、进入postgresql创建数据库

在前面已经修改认证文件/var/lib/pgsql/data/pg_hba.conf能够使用默认用户postgres不需要密码进入数据库

psql -U postgres   

在这里插入图片描述

创建新用户

#新建用户sonar,密码xxxxxx
create user sonar with password '自定义密码';
 
#创建数据库sonar并指定owner为sonar
create database sonar with owner sonar;
 
#授权sonar用户在数据库sonar拥有所有权限
grant all on database sonar to sonar;

使用\q命令退出数据库,设置登录数据库需要密码:前三个trust修改为md5

vim /data/postgresql-13.0/data/pg_hba.conf

在这里插入图片描述

代码质量管理平台–sonarqube安装

1、前置依赖+下载

postgresql、sonarqube(sonarqube6.6以上版本不支持MySQL)
下载地址:https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/
在这里插入图片描述

2、安装unzip并解压sonarqube并移动到/usr/local

yum install unzip​
unzip sonarqube-9.9.0.65466.zip​
mv sonarqube-9.9.0.65466 /usr/local/

3、修改sonarqube相应的配置

vim /usr/local/sonarqube-9.9.0.65466/conf/sonar.properties
修改:
1.sonar.jdbc.username=sonar
2.sonar.jdbc.password=xxx​x
3.sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar​
4.sonar.web.context=/sonar​
5.sonar.web.host=0.0.0.0
6.sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
7.sonar.web.port=9000
8.sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
9.sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError
10.sonar.search.port=9001
11.sonar.path.data=data
12.sonar.path.temp=temp
在这里插入图片描述
在这里插入图片描述

4、新增用户,并将目录所属权赋予该用户:

useradd sonar
chown -R sonar:sonar sonarqube-9.9.0.65466

5、启动:

#启动
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh start
#停止
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh stop
#重启
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh restart

在这里插入图片描述

6、界面访问+登录

http://http://10.27.201.84:9000/sonar​
开启防火墙:vim /etc/sysconfig/iptables新增9000端口​

登录,默认账户和密码都是admin
在这里插入图片描述

登陆之后需要修改密码
在这里插入图片描述

7、在界面产生令牌+sonarqube分析项目代码

并将项目代码使用以下命令进行提交由sonarqube进行分析,完成后,查看相应的分析结果
在这里插入图片描述

在git中输入以下代码,-Dsonar.login=后面的值是在sonarqube中生成的

mvn sonar:sonar \
  -Dsonar.host.url=http://10.27.201.84:9000/sonar \
  -Dsonar.login=squ_cde46383d52c8f82f6607e5ebe134384fa2a725a

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后就可以点进去详细查看bug等信息:
在这里插入图片描述

可能出现的问题

关于sonarqube安装的前置问题

sonarqube官方文档
里面明确写出了sonarqube各个版本 对应的 jdk版本支持的数据库
一定要严格按照官网给出的支持情况去选择对应的版本去配置,否则一定会报错!!!
建议使用新版,不要因为postgresql数据库没有使用过去选择旧版,问题会层出不穷!!!

sonarqube启动不起来/启动后马上关闭

在这里插入图片描述
在安装路径下的logs文件夹中,如果运行成功应该会有如图几个日志,如果没有成功运行,点开nohup.log、sonar.log文件去看报错信息。

常见的几个原因:
1、文件的执行权限问题
sonarqube不支持root身份启动运行,只能创建一个用户去启动,需要给sonarqube的安装文件给新用户设置权限,按照本文操作给最外层的sonarqube9.9.0.65466文件设置权限后内层的文件也应该都是修改完的状态,但不排除个别文件没有修改成功,按照日志文件的报错内容找到该文件,重新执行chowm命令完成权限分配,重启sonarqube即可。

2、elasticsearch进程的最大文件描述符
日志中显示max file descriptors [4096] for elasticsearch process is too low,elasticsearch进程的最大文件描述符从4096增加到至少65535,可以在/etc/security/limits.conf文件中添加以下行:
A hard nofile 65536
A soft nofile 65536
其中A代表启动sonarqube的用户

执行mvn sonar:sonar \报错BUILD FAILURE

这种:
在这里插入图片描述
这种:
在这里插入图片描述
IDEA打开项目,执行cleancompile,再次执行mvn sonar:sonar \

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

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

相关文章

资料链接 网络/系统/华为

网络: 缺省路由 https://www.cnblogs.com/ricksteves/p/9702546.html AC热备 快搜预览中心https://search.ruijie.com.cn:8447/rqs/preview.html?wdeHAiOjE1NDU4NzUxNDcsIm5iZiI6MTU0NTYxNTk0N302018092015272000303LqqZuvMhE7V7Ygl6r5RWsTHbWazT BGP https:…

nextjs 错误日志收集

最近用nextjs开发一款房产渠道管理的系统,从开始的项目管理,到价格单管理、订单管理、团队管理、中介管理、个人信息管理...等等功能越来越多的时候,前端偶现的问题不容易发现,造成了不必要的麻烦,就想搞个错误日志收集…

地理信息系统有哪些SCI期刊推荐? - 易智编译EaseEditing

以下是几本地理信息系统领域的SCI期刊推荐: International Journal of Geographical Information Science: 这是一个国际性的期刊,它涵盖了地理信息科学的所有领域,包括地图学、遥感、空间分析、地理信息系统、地理信息技术、地球信息学等等…

被chatGPT割了一块钱韭菜

大家好,才是真的好。 chatGPT热度一直上升,让我萌生了一个胆大而创新的想法, 把chatGPT嵌入到Notes客户机中来玩。 考虑到我已经下载了一个chatGPT的Notes应用(请见《ChatGPT APIs for HCL DOMINO》),想着…

Shell编程之条件语句

目录 一、条件测试 1)test命令 ​编辑 2)文件测试 常用的测试操作符 ​编辑 4)整数值比较 常用的测试操作符 6)逻辑测试 常用的测试操作符 7)三元运算符 二、if语句 1)单分支结构 2&#xff09…

时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测

时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测 目录 时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测 基于鲸鱼算法优化门…

必须要知道的hive调优知识(下)

Hive如果不用参数调优,在map和reduce端应该做什么 1、map阶段优化 Map阶段的优化,主要是确定合适的map数。那么首先要了解map数的计算公式 num_reduce_tasks min[${hive.exec.reducers.max}, (${input.size}/${hive.exec.reducers.bytes.per.reducer…

软件测试:测试一个网站

一、软件测试的原则 1、软件测试应尽早执行,并贯穿于整个软件生命周期 2、软件测试应追溯需求 3、测试应由第三方来构造 4、穷举测试是不可能的,要遵循 Good-enough 原则 5、必须确定预期输出(或结果) 6、必须彻底检查每个测试结果 7、…

常见电路20问,看看你能回答多少

1、什么是电路? 电路是由电子元件、导线和其他元件组成的路径,可以控制电子流的流动。电路可以用于将电能转化为其他形式的能量,例如光能、声能、机械能等等。电路还可以用于控制电子设备的操作,例如计算机、通信设备、车辆控制等…

来字节跳动实习,有机会发Nature子刊

来字节跳动实习,还能有机会发 Nature 子刊? 没错,ByteDance Research 与北京大学物理学院陈基课题组合作的一项研究近期登上了国际顶级刊物 Nature Communications。作者之中,共同一作伟中就是字节跳动的实习生同学,来…

python数据分析:人口普查可视化,看看哪个地区人口最多

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天案例难度指数: ☆☆☆ 准备 环境使用: 在开始写我们的代码之前,我们要准备好运行代码的程序 Anaconda (python3.9) –> 识别我们写的代码 开发工具: jupyter notebook –> 代…

ChatGPT在智能客服产品落地探讨

AI语言模型中的ChatGPT近期在互联网平台上引起了广泛的讨论。那么,如果想将这个大型语言模型应用在智能客服产品中,或者将其在ToB SaaS应用软件领域落地,应该采用哪种构建策略? 现在ChatGPT这个大型语言模型已经在各种平台获得了广…

初学Python来用它制作一个简单的界面

前言 很多刚开始学习python的宝子,就想着自己开始琢磨一些界面,但是吧很多都是有点难度的,自己又琢磨不透,只能把代码复制粘贴运行 现在就带你们来了解一个制作简单界面的代码 ttkbootstrap 是一个基于 tkinter 的界面美化库&am…

CMake自动按目录结构编译Protobuf代码

在使用CMake构建C项目时,如果有使用Protobuf,CMake提供了一个FindProtobuf.cmake模块来处理PB,其使用方法如下: find_package(Protobuf REQUIRED) protobuf_generate_cpp(GENERATED_SRC GENERATED_HEADER "pb/t.proto"…

rancher Prometheus添加exporter监控

mysql 用docker启动exporter docker run -d \-p 9104:9104 \--network my-mysql-network \-e DATA_SOURCE_NAME"mysqlexporter:mysqlexporter(192.168.147.46:3306)/" \prom/mysqld-exporter给集群中的prometheus添加该exporter的数据 First, you will need to c…

力劲塑机:用CRM“塑造”数字化能力

你知道吗?从手机到电脑,从暖气到扶梯,从家用电器到汽车、摩托车,从眼镜、手表到拉链、纽扣,这些物品的生产过程都离不开压铸和注塑工艺。如果说压铸和注塑这个几百亿的产业带动了几万亿的市场,一点也不夸张…

Vue3+axios+Mock.js实现登录功能

文章目录 前言一、Vue3 Element Plus Mock.js axios实现登录功能1.登录页面配置路由、编写表单内容2.编写表单校验规则3.登录触发表单预验证4.Mock.js模拟登录请求 二、面试题1.前端登录流程2.token是什么? 前言 最近学习了Vue3,这篇文章主要分享一下…

2023年6月DAMA-CDGA/CDGP数据治理认证考试可报名地区公布

2023年4月23日,据DAMA中国官方信息,目前6月DAMA-CDGA/CDGP数据治理认证考试开放报名地区有:北京、上海、广州、深圳、长沙、呼和浩特。目前南京、济南、西安、杭州等地区还在接近开考人数中,打算6月考试的朋友们可以抓紧时间报名啦…

内网远程控制软件哪个好用

市面上远程控制软件很多,但是支持纯内网环境(无外网)的很少。大部分远程控制软件可以在局域网用,但是它的数据流量还是要走软件公司服务器,也就是要走外网,所以在纯内网环境没法使用。那么什么软件支持纯内…