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

12.centos7部署sonarqube9.6

12.centos7部署sonarqube9.6

        • 环境:sonarqube9.6+Postgresql13+JDK11
          • sonarqube9.6下载地址:
          • Postgresql13 rpm下载地址:
          • JDK11下载地址:
        • 准备工作:
          • 修改文件句柄数(最大文件数)和用户最大进程数限制
          • 修改进程虚拟内存区域
          • 安装JDK11
          • 安装postgresql13
          • 初始化postgresql
          • 创建sonarqube使用的数据库和用户
        • 安装sonarqube
          • 修改sonar.properties配置文件
          • 启动sonarqube
        • web端配置
          • 汉化
          • 配制(我个人使用过程中遇到的坑)
        • 安装sonar-scanner 用于扫描分析项目
        • 尝试分析一个项目
          • 分析linux下的html项目
          • 分析一个java项目
        • 过程中参考的文献

1.什么是sonarqube

开源的代码质量管理系统,错误、bug、漏洞等等。与jenkins 集成,可完成自动化的扫描

2.使用前提

基于java开发
小型实例需要4gb以上,大型16gb

环境:sonarqube9.6+Postgresql13+JDK11

sonarqube9.6下载地址:
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.6.1.59531.zip
Postgresql13 rpm下载地址:

客户端下载地址:

https://yum.postgresql.org/13/redhat/rhel-7-x86_64/postgresql13-13.0-1PGDG.rhel7.x86_64.rpm

相关依赖下载地址:

https://yum.postgresql.org/13/redhat/rhel-7-x86_64/postgresql13-libs-13.0-1PGDG.rhel7.x86_64.rpm

服务端下载地址:

https://yum.postgresql.org/13/redhat/rhel-7-x86_64/postgresql13-server-13.0-1PGDG.rhel7.x86_64.rpm
JDK11下载地址:
http://mirror.centos.org/centos/7/os/x86_64/Packages/java-11-openjdk-11.0.8.10-1.el7.x86_64.rpm

或者直接yum安装

yum install java-11-openjdk

准备工作:

修改文件句柄数(最大文件数)和用户最大进程数限制
vim /etc/security/limits.conf#soft nproc :用户可打开的最大进程数量,超过的话会提示
#hard nproc:用户可打开的最大进程数量,超过的话会报错
#soft nofile :每个进程可以打开的最大文件数量,超过的话会提示
#hard nofile :每个进程可以打开的最大文件数量,超过的话会报错...*                soft    nofile          65536
*                hard    nofile          65536
*                soft    nproc           655350
*                hard    nproc           655350# End of file

修改进程虚拟内存区域
vim /etc/sysctl.conf...
vm.max_map_count = 524288 #限制一个进程可以拥有的 VMA ( 虚拟内存区域 ) 的数量 
fs.file-max = 131072 #内核可分配的最大文件数
fs.nr_open = 1048576 #单个进程可分配的最大文件数
fs.inotify.max_user_instances = 65535 #每个用户最大可创建inotify instances数量
fs.inotify.max_user_watches = 102400 #每个用户可同时添加的watch数量...保存后执行,把/etc/sysctl.conf中的参数重新应用到系统中
sysctl -p

安装JDK11
yum install java-11-openjdk		#安装JDK11java -version 	#查看使用的版本...
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.10-1.el7_9) (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.10-1.el7_9) (build 11.0.18+10-LTS, mixed mode, sharing)
...alternatives --config java		#切换版本,如果之前装过JDK8,建议装JDK11后,将版本切换一下,然后再写入环境变量,否则后期使用sonar- scanner时候会报错...
共有 2 个提供“java”的程序。选项    命令
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64/jre/bin/java)+ 2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64/bin/java)按 Enter 保留当前选项[+],或者键入选项编号:...vim /etc/profile			#设置环境变量,在文件底部加入以下内容...
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.1.1-1.el7_9.x86_64	#这里写自己实际的路径
export PATH=${JAVA_HOME}/bin:$PATH...source /etc/profile	#让变量生效

安装postgresql13
yum localinstall -y postgresql13-server-13.0-1PGDG.rhel7.x86_64.rpm 	#安装服务端
yum localinstall -y postgresql13-libs-13.0-1PGDG.rhel7.x86_64.rpm    #安装客户端依赖
yum localinstall -y postgresql13-13.0-1PGDG.rhel7.x86_64.rpm 		#安装客户端

初始化postgresql
1.#创建数据目录
mkdir -p /data/postgresql-13.0/	2.#修改目录的属主属组
chown postgres:postgres -R /data/postgresql-13.0/	3.#初始化pgsql
sudo -u postgres /usr/pgsql-13/bin/initdb --encoding=UTF-8 --username=postgres --pgdata=/data/postgresql-13.0/data	
# --encoding 字符集
# --username 启动用户
# --pgdata 数据目录4.#记录配置文件路径
vim /data/postgresql-13.0/data/postgresql.conf...
# - Connection Settings -listen_addresses = '192.168.xx.xxx'             # what IP address(es) to listen on;
...5.#定义哪些服务器、可以用什么样的方式,访问postgresql
/data/postgresql-13.0/data/pg_hba.conf...
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
...6.#修改service文件中数据目录
vim /usr/lib/systemd/system/postgresql-13.service...
# Location of database directory
Environment=PGDATA=/data/postgresql-13.0/data/
...
systemctl daemon-reload	#重载服务7.#启动postgresql
systemctl start postgresql-13
systemctl enable postgresql-13  

创建sonarqube使用的数据库和用户
psql -U postgres   #连接数据库(此命令会用postgres用户,默认连入postgres数据库。-U指定用户 -d指定数据库)#新建用户sonarqube,密码xxxxxx
create user sonarqube with password 'xxxxxx';#创建数据库sonarqube_9_6并指定owner为sonarqube
create database sonarqube_9_6 with owner sonarqube;#授权sonarqube用户在数据库sonarqube_9_6拥有所有权限
grant all on database sonarqube_9_6 to sonarqube;

安装sonarqube

#创建用户sonar,因为sonarqube会用到ES,ES不能用root用户启动
useradd sonar#解压包
unzip sonarqube-9.6.1.59531.zip	#修改目录的属主属组
chown -R sonar:sonar sonarqube-9.6.1.59531/#备份原始配置文件
cd sonarqube-9.6.1.59531/conf/
cp sonar.properties sonar.properties_bak
修改sonar.properties配置文件
#postgresql连接配置
sonar.jdbc.username=sonarqube
sonar.jdbc.password=xxxxxx
sonar.jdbc.url=jdbc:postgresql://xx.xx.xx.xx:5432/sonarqube_9_6#端口配置
sonar.web.port=9000
启动sonarqube
sudo -u sonar /opt/sonarqube-9.6.1.59531/bin/linux-x86-64/sonar.sh start

web端配置

初始用户名密码:admin/admin

登录后的样子(我提前汉化过):

在这里插入图片描述


汉化

下载汉化包

下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-9.6

安装汉化包

将下载好的汉化包(sonar-l10n-zh-plugin-9.6.jar)移动到插件目录下即可/opt/sonarqube-9.6.1.59531/extensions/plugins/然后重启一下sonarqube服务即可
sudo -u sonar /opt/sonarqube-9.6.1.59531/bin/linux-x86-64/sonar.sh restart

配制(我个人使用过程中遇到的坑)

1.配制中开启 Allow users to sign-up
允许新用户进行身份验证。设置为“false”时,只有现有用户才能对服务器进行身份验证。
在这里插入图片描述

2.关掉Force user authentication
关掉强制用户身份验证
在这里插入图片描述

3.开启SCM
在这里插入图片描述


安装sonar-scanner 用于扫描分析项目

不一定要和sonarqube装到一个系统下,在哪扫就装哪

下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip#解压
unzip sonar-scanner-cli-4.8.0.2856-linux.zip -d /usr/local/	#创建软连接
ln -s /usr/local/sonar-scanner-cli-4.8.0.2856-linux/ /usr/local/sonar-scanner	#将 bin 目录添加到 PATH 环境变量
vim /etc/profile...
export PATH=/usr/local/sonar-scanner/bin:$PATH
...#环境变量生效
source /etc/profile

尝试分析一个项目

分析linux下的html项目

1.创建一个分析项目
在这里插入图片描述

2.点击创建令牌

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

3.例如分析一个html的项目
将下列代码在项目的根目录执行即可

在这里插入图片描述

4.在项目根目录执行指令
在这里插入图片描述

5.成功
在这里插入图片描述

6.在web端查看分析的项目
点击Bugs查看问题即可
在这里插入图片描述


分析一个java项目

1.前提是系统中已经安装了maven

在这里插入图片描述

2.在项目根目录执行指令
在这里插入图片描述

3.成功
在这里插入图片描述

4.然后在web端就可以看到分析的项目
在这里插入图片描述

5.点击Bugs可以看到问题的具体位置
在这里插入图片描述

6.点击问题原因,会告诉你该怎么修改代码,才能符合要求
在这里插入图片描述

过程中参考的文献

https://blog.csdn.net/qq522044637/article/details/126840161

https://blog.csdn.net/lizz861109/article/details/124869197

https://blog.csdn.net/weixin_41753664/article/details/122452178

https://www.656463.com/wenda/SonarQubefwqzzyxdwffwbqwzd404_180

https://community.sonarsource.com/t/java-lang-unsupportedclassversionerror-org-sonar-batch-bootstrapper-environmentinformation-has-been-compiled-by-a-more-recent-version-of-the-java-runtime-class-file-version-55-0-this-version-of-the-java-runtime-only-recognizes-class-file-versions-up-t/52120

相关文章:

12.centos7部署sonarqube9.6

12.centos7部署sonarqube9.6环境:sonarqube9.6Postgresql13JDK11sonarqube9.6下载地址:Postgresql13 rpm下载地址:JDK11下载地址:准备工作:修改文件句柄数(最大文件数)和用户最大进程数限制修改…...

大学四年自学Java编程,现在拿到28万年薪的offer,还是觉得挺值的

最近刚拿到美团的Java后端工程师的offer,(底薪、奖金、补贴、年终奖、五险一金)总包加在大概有28万的年薪,实际到手不会有这么多,但是我对于这个待遇还是非常满意的。说来还是非常的感慨,我属于那种从大一到…...

MySQL的日志详解

目录 一.介绍 日志分类 二.错误日志 三.二进制日志—binlog 概述 日志格式 操作 四.查询日志 五.慢查询日志 一.介绍 在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的…...

输出该股票所有收盘比开盘上涨3%以上的日期

1:输出该股票所有收盘比开盘上涨3%以上的日期 #codingutf-8 import tushare as ts import pandas as pd import numpy as np#获取某支股票的历史行情数据 dfts.get_hist_data(code600519,start2001-01-01) #将互联网上的数据获取并且存储到本地 df.to_csv(./maotai…...

数值卡,让数据可视化玩出新花样丨三叠云

数值卡 路径 仪表盘 >> 仪表盘设计 功能简介 1. 数值卡增加「数值标题」、「图标」、「进度条」功能,使得应用场景更为广泛,实现数据可视化,让用户能够轻松地获取、处理信息。 2.「数据模型」支持0个维度1个指标、1个维度1个指标。…...

有这几个表现可能是认知障碍前兆

我国目前对于认知障碍的认知率、就诊率、诊断率很低,然而认知障碍如果能在早期发现,并及时治疗,生活质量会有效提高,缓解家属的精神和经济负担。所以,认知障碍的前兆一定要了解。1.记忆力减退,一周内的重要…...

java面试题-阿里真题详解

前言 大家好,我是局外人一枚,最近有不少粉丝去阿里巴巴面试了,回来之后总结不少难题给我,以下是面试的真题,跟大家一起来讨论怎么回答。 阿里一面 1、说⼀下ArrayList和LinkedList区别 ⾸先,他们的底层数…...

JSON格式解析关键词搜索API

为了进行此平台API的调用,首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具,对接口进…...

【Java基础】泛型(二)-泛型的难点:通配符

本文将尝试将通配符和泛型中的继承,多态一并讲解 关于泛型中继承的注意事项 因为Integer、Double继承了Number,根据多态性,以下语句是合法的 Number n new Integer(10); // OK, 父类引用变量可以指向子类对象 n 2.9 // OK,n实…...

黑马】后台管理-两个括号的坑

记录一下这两天的坑没想到后台管理系统上线这两天都没有搞明白1.首先第一个坑是使用node.js的express中间件框架创建一个微型服务器,然后将vue脚手架生成的dist文件夹的文件放入里面了 ,把项目加载到web服务器之后运行node .\app.js,页面显示…...

05:进阶篇 - 使用 CTKWidgets

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 CTKWidgets 包含了一组 Qt 部件,用于生物医学成像应用程序。当然,即使你的程序与医学无关,很多部件也是很有参考意义的。 在 CTK 源码中,有很多选项开关,可以控制你想要编译的内容(详见:04:进阶篇 …...

【YOLO V5】代码复现过程

接上篇,讲到如何从mask转成YOLOv5训练需要的txt数据集格式,这篇就在此基础上进行模型训练预测和部署转换吧! 目录 1.环境准备 2.YOLO训练 2.1 数据集准备 2.2 data.yaml准备 2.3 yolov5.yaml准备 2.4 训练命令 3.YOLO预测 3.1OLOv5 P…...

汽车如何实现制动

汽车如何实现制动 汽车如何实现制动 难点答疑:汽车刹车时,四个车轮是如何制动的?制动机理是什么? 第一步:驾驶员踩下制动踏板,推动制动主缸 第二步:制动主缸将制动液的压力通过制动管道传递到四…...

cmake 引入第三方库(头文件目录、库目录、库文件)

程序的编写需要用到头文件,程序的编译需要lib文件,程序的运行需要dll文件,因此cmake引入第三方库其实就是将include目录、lib目录、bin目录引入工程。 目录 1、find_package(批量引入库文件和头文件) 2、include_dir…...

插件开发版|Authing 结合 APISIX 实现统一可配置 API 权限网关

当开发者在构建网站、移动设备或物联网应用程序时,API 网关作为微服务架构中不可或缺的控制组件,是流量的核心进出口。通过有效的权限管控,可以实现认证授权、监控分析等功能,提高 API 的安全性、可用性、拓展性以及优化 API 性能…...

deepinlinux v20安装rust和tauri并配置vscode开发工具过程

rust 很快进入linux内核开发,作为高效后台语言值得学习 tauri是代替electron的跨平台框架,不打包浏览器内核,所以打包出来体积小 安装rust 命令 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 安装后看版本 rustc -V 看构…...

通俗易懂的机器学习——sklearn鸢尾花分类(KNN)

前言 KNN算法是机器学习中较为简单的入门算法,其主要思想是选取k个与待预测点相近的数据,观察他们的类别,本着离谁近就更像谁的思路对于待预测点进行预测,本文将针对使用sklearn进行KNN算法的使用进行详解 数据预处理 在正式开…...

操作系统引论

操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现&#xff0…...

优质 CS 读博 (PhD) 经验贴汇总

前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 Advice for early-stage Ph.D. students 读博的核心是在研究上取得进展,只有在研究上取得一些进展&#xff…...

SpringCloud学习笔记 - @SentinelResource的fallbackblockHandler配置详解 - sentinel

1. sentinel服务负载均衡测试 sentinel默认开启了负载均衡的轮询模式,为了测试sentinel服务负载均衡的效果,需要先创建两个服务提供者和一个服务消费者。 1.1. 分别创建两个服务提供者-支付服务9003、9004 1. 添加pom依赖: 提供者只需要将…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

软件工程 期末复习

瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...

sshd代码修改banner

sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...