Linux 下安装SonarQube (版本sonarqube7.6)

news2024/12/26 22:13:57


公司的虚拟环境坏了,sonarqube需要重新安装。简单记录安装过程和遇到的问题。 相关环境信息

  • CentOS Linux release 7.6.1810 (Core)
  • MySQL 5.7.30
  • sonarqube7.6
  • JDK 11.0.2

一 安装Sonar前需要知道

1为什么要代码清洁

  • 软件的核心是代码。代码不仅指导业务行为,而且还决定软件的性能。保持代码清洁将确保从软件中获得最大价值
  • 代码中的安全漏洞会严重损害数据的机密性,并损害您的商业声誉。通过在正确的地点和时间提供正确的检查来确保您的整个开发流程
  • 推送的代码总是干净的时候,你的工作环境——源代码——就会不断改善,从而形成一个高效、敏捷和高效的工作场所

2.SonarQube 能做什么

SonarQube 就像是一个实时教练来帮助开发人员在编写代码时就解决代码问题。无论开发人员的经验水平如何,Sonar都能帮助理解错误、发现最佳实践,并在此过程中做出更好的编码决策。

SonarQube 帮助开发人员减少新代码或更改代码中需要解决的问题,让开发人员专注于解决有趣的技术挑战,而不必持续返工和错误修复。

二 如何安装SonarQube

首先从官网下载sonarqube存档

我用的版本是sonarqube-7.6 (之前下载的备份文件,所以我没有重新下载)。将压缩包解压后,修改sonar.peoperties配置文件

[root@localhost ~]# cd /opt/sonarqube/sonarqube-7.6/conf
[root@localhost conf]# 
[root@localhost conf]# 
[root@localhost conf]# ls
sonar.properties  wrapper.conf
[root@localhost conf]# 

Sonarqube启动需要系统一个名称为sonar的数据库系统。这里我使用的是Mysql数据库,更高的Sonar版本不支持 Mysql。

  • sonar.jdbc.username:数据库用户名称
  • sonar.jdbc.password:数据库用户密码
  • sonar.jdbc.url :数据库链接 (确保链接已经上传/sonarqube-7.6/lib/jdbc/mysql目录下)
  • sonar.jdbc.driverClassName:数据库驱动 
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092

#----- DEPRECATED 
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://10.0.192.21:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver 

进入bin目录下,通过ll命令查看文件夹中存在多个文件夹,每个文件夹对应不同的系统

[root@localhost etc]# cd /opt/sonarqube/sonarqube-7.6/bin
[root@localhost bin]# 
[root@localhost bin]# ll
总用量 0
drwxrwxrwx. 2 sonar sonar  25 9月  29 2020 jsw-license
drwxrwxrwx. 3 sonar sonar  48 9月  29 2020 linux-x86-32
drwxrwxrwx. 3 sonar sonar  69 5月  19 13:50 linux-x86-64
drwxrwxrwx. 3 sonar sonar  48 9月  29 2020 macosx-universal-64
drwxrwxrwx. 3 sonar sonar 167 9月  29 2020 windows-x86-32
drwxrwxrwx. 3 sonar sonar 167 9月  29 2020 windows-x86-64
[root@localhost bin]# 

因为是linux系统,进入的linux-x86-64文件夹,文件夹中有2个文件, sonar.sh为执行文件,可以控制sonar。 

[root@localhost bin]# cd ./linux-x86-64
[root@localhost linux-x86-64]# 
[root@localhost linux-x86-64]# ls
lib  SonarQube.pid  sonar.sh  wrapper
[root@localhost linux-x86-64]# 
[root@localhost linux-x86-64]# ./sonar.sh
Usage: ./sonar.sh { console | start | stop | restart | status | dump }
[root@localhost linux-x86-64]# 
[root@localhost linux-x86-64]# 

 例如开启sonarqube服务和关闭sonarqube服务

[root@localhost linux-x86-64]#  ./sonar.sh start
Starting SonarQube...
Started SonarQube.

[root@localhost linux-x86-64]#  ./sonar.sh stop
Stopping SonarQube...
Waiting for SonarQube to exit...
Stopped SonarQube.

Sonarqube服务正常启动后就可以访问 http://[ip]:9000/projects 访问了,第一次正常启动后需要等一会才能访问此地址,因为第一次启动的时候sonarqube会向数据库中创建所需要的数据表信息并初始化数据

如何集成使用sonar可以看下面的文章

SonarQube 持续集成代码质量管理_sonarqube持续集成_=PNZ=BeijingL的博客-CSDN博客目录简介组成集成应用SonarScanner 代码审查配置简介SonarQube 是一个开源的代码分析平台,用来持续分析和评测代码的质量,支持检测 Java、JavaScript、C#、C、C++ 等二十几种编程语言。通过 SonarQube 可以检测出项目中潜在的Bug、漏洞、代码规范、重复代码、缺乏单元测试的代码等问题,并提供了 UI 界面进行查看和管理组成SonarQube ServerSonarQube Server 会启动3个主要进程:..https://blog.csdn.net/Beijing_L/article/details/115733775

三、常见问题

当sonarqube启动后,会在sonarqube/logs 目录下产生5个日志文件,access.log, ce.log, es.log,sonar.log, web.log。 通过分析日志文件查找启动报错原因

1. 使用root用户启动sonarqube报错

[sonarqube@localhost linux-x86-64]$ su root
密码:
[root@localhost linux-x86-64]# chown -R sonarqube.sonarqube /opt/sonarqube
sonarqube/                 sonarqube-7.9.6.zip        sonarqube-9.9.1.69595.zip  
[root@localhost linux-x86-64]# chown -R sonarqube.sonarqube /opt/sonarqube/sonarqube-7.9.6/
[root@localhost linux-x86-64]# 
[root@localhost linux-x86-64]# 
[root@localhost linux-x86-64]# su sonarqube
[sonarqube@localhost linux-x86-64]$ 
[sonarqube@localhost linux-x86-64]$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.
[sonarqube@localhost linux-x86-64]$ ./sonar.sh status
SonarQube is running (7871).
[sonarqube@localhost linux-x86-64]$ 

问题原因:不能使用root用户启动sonarqube , 需要换成一个新创建的sonar用户,并赋予权限。

2. java.lang.IllegalStateException: SonarQube requires Java 11 to run

WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11 to run
java.lang.IllegalStateException: SonarQube requires Java 8 to run
    at com.google.common.base.Preconditions.checkState(Preconditions.java:173)
    at org.sonar.application.App.checkJavaVersion(App.java:92)
    at org.sonar.application.App.start(App.java:57)
    at org.sonar.application.App.main(App.java:96)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
    at java.lang.Thread.run(Thread.java:750)
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

问题原因:JDK不匹配, sonarqube7.6 需要java 8 或者更高版本

上一篇:Linux安装MySQL后无法通过IP地址访问处理方法

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

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

相关文章

陈丹琦团队最新力作:上下文学习在上下文“学到”了什么?

深度学习自然语言处理 原创作者 | 鸽鸽 这段时间in-context learning真的很火&#xff0c;陈丹琦组最新的两篇文章都是ICL相关&#xff0c;今天我们拜读其中一篇&#xff1a;丹琦的硕士生、纽约大学准博士生Jane Pan的ACL小短文。 大佬的学生会做出怎样的科研示范呢&#xff1f…

单位、家庭建筑物电气、电子设备防雷举措

前 言 在现实的学习、工作、生活中&#xff0c;有时会面对自然灾害、重特大事故、环境公害及人为破坏等突发事件&#xff0c;为了控制事故的发展&#xff0c;就不得不需要事先制定应急预案。那要怎么制定科学的应急预案呢﹖下面是小编为大家整理的单位、住宅建筑物、电子电气防…

Flink有状态计算的状态容错

状态容错 State Fault Tolerance 首先来说一说状态容错。Flink 支持有状态的计算&#xff0c;可以把数据流的结果一直维持在内存&#xff08;或 disk&#xff09;中&#xff0c;比如累加一个点击数&#xff0c;如果某一时刻计算程序挂掉了&#xff0c;如何保证下次重启的时候&…

VM600 IOCN 输入/输出接口卡

用于CPUM卡的VM600 IOCN输入/输出卡 CPUM卡的输入/输出(接口)卡一个主以太网连接器(8P8C (RJ45))&#xff0c;用于与VM600 MPSx软件和/或Modbus TCP和/或PROFINET通信进行通信一个辅助以太网连接器(8P8C (RJ45))&#xff0c;用于冗余Modbus TCP通信一个主要串行连接器(6P6C (R…

LightningChart JS 4.0.x Crack

Lightning-fast, interactive & responsive 2D & 3D JavaScript charts. Next Generation, World’s Fastest JS Charts Getting Started with LightningChart JS There’s multiple ways to get started with our JS charting library. You can install the package…

CMake Practice 学习笔记二---子目录、安装

让前面的Hello World更像一个工程&#xff1a; 为工程添加一个子目录src&#xff0c;用来放置工程源代码&#xff1b;添加一个子目录doc&#xff0c;用来反之这个工程的文档hello.txt&#xff1b;在工程目录添加文本文件COPYRIGHT&#xff0c;README&#xff1b;在工程目录添加…

Linux常见指令(3)

Linux常见指令 ⑶ date指令引入描述用法例子时间时间戳 cal指令描述用法例子 find指令描述用法例子补充which指令whereis指令 grep指令描述用法例子grep 对文件的操作grep 对目录的操作 补充 打包压缩 和 解压解包zip && unzip描述用法例子对文件的操作对目录的操作 ta…

苹果手机没有备份怎么恢复数据?数据恢复,轻松解决!

案例&#xff1a;苹果手机没有进行过iTunes和iCloud备份&#xff0c;手机还原后数据都被抹掉了&#xff0c;还能恢复数据吗&#xff1f; 【求问各位大神&#xff0c;我几天前把苹果手机的数据还原了&#xff0c;也没有提前进行过数据的备份。现在想起来之前微信上有一些重要的…

uniapp使用uView框架,后端传16位数以上时出现精度缺失的情况

1、使用 json-bigint&#xff0c;失败 2、使用 config 里的 getTask&#xff0c;失败 3、修改 dataType&#xff0c;成功 原因&#xff1a; 通过ajax请求回来的数据在response和preview两种状态显示的是不同的。response中的看到的数据格式其实是字符串&#xff08;ajax请求…

GPT-4 国内使用指南 保姆教程

gpt持续火爆&#xff0c;然鹅国内很多朋友还说不会使用&#xff0c;因此有必要科普一篇文章&#xff01; app.educlub.icu很多朋友因为各种限制无法开通#ChatGPT Plus&#xff0c;而申请OpenAI的GPT-4 API也要慢慢排队&#xff08;我的也还没下来&#xff09;。于是在这里我搜…

3 个令人惊艳的 ChatGPT 项目,开源了!

过去一周&#xff0c;AI 界又发生了天翻地覆的变化&#xff0c;其中&#xff0c;最广为人知的&#xff0c;应该是 OpenAI 正式上线 ChatGPT iOS 客户端&#xff0c;让所有人都可以更方便的在手机上与 ChatGPT 聊天。 此外&#xff0c;Stable Diffusion 母公司 Stability AI 也…

智能文档处理黑科技,拥抱更高效的数字世界

目录 0 写在前面1 为何要关注智慧文档&#xff1f;2 图像弯曲矫正3 手写板反光擦除4 版面元素检测5 文档篡改检测总结 0 写在前面 近期&#xff0c;中国图象图形学学会文档图像分析与识别专业委员会与上海合合信息科技有限公司联合打造了《文档图像智能分析与处理》高峰论坛。…

OpenCloudOS开源Linux操作系统详解

OpenCloudOS是什么&#xff1f;OpenCloudOS是Linux哪个版本&#xff1f;OpenCloudOS是哪个国家的&#xff1f;OpenCloudOS是一个国产操作系统开源社区&#xff0c;OpenCloudOS的基础库和用户态组件完全与CentOS 8兼容&#xff0c;腾讯云百科分享OpenCloudOS Linux操作系统详细介…

基于MATLAB的无人机遥感数据预处理与农林植被性状估算实践技术

为了将人工智能方法引入农业生产领域。首先在种植、养护等生产作业环节&#xff0c;逐步摆脱人力依赖&#xff1b;在施肥灌溉环节构建智慧节能系统&#xff1b;在产量预测和商品定价生产管理环节提高效能。这些智慧农业迫切需要实现的目标&#xff0c;首先要解决的问题就是多源…

第三十六章 状态管理工具与总结

Redux 是一个渐进式的状态管理库&#xff0c;它不仅仅是一个库&#xff0c;同时也是一个框架。它提供了一组用于构建复杂应用程序的工具和库&#xff0c;其中包括一些浏览器插件。 在 Chrome 和 Firefox 浏览器上&#xff0c;已经存在一些 Redux 的浏览器插件&#xff0c;例如 …

「技术分享」汽车检测移动机器人应用,科聪赋能智能数字化检测!

2021年汽车无钥匙进入系统市场价值16亿美元&#xff0c;预计到 2027 年将达到 26.8 亿美元&#xff0c;在预测期内的复合年增长率超过10%。这一光明的市场前景&#xff0c;推动相关供应商推出复杂的集成电子系统。但过去&#xff0c;汽车制造环节在智能化、数字化和过程成本等方…

企业数字化转型到底该怎么做?

企业数字化转型涉及实施技术和利用数字工具来增强业务流程、改善客户体验和推动创新。主要包括&#xff1a; 愿景和战略&#xff1a;首先明确定义数字化转型目标。确定数字技术可以对企业的业务产生最重大影响的领域&#xff0c;例如运营效率、客户参与度或产品开发。 评估当前…

【Java EE】Spring Cloud Gateway

Spring Cloud Gateway 添加Spring Cloud Gateway术语表工作流程网关的作用路由负载均衡统一处理跨域发布控制流量染色统一接口保护统一业务处理统一鉴权访问控制统一日志统一文档 网关的分类实现网关开启日志断言过滤器 参考文档 https://springdoc.cn/spring-cloud-gateway/ …

BetaFlight Mark4之“妖怪”声音之二

BetaFlight Mark4之“妖怪”声音之二 1. 源由2. 回顾3. 分析4. 优化5. 数据6. 综述7. 参考资料8. 附录 1. 源由 在BetaFlight Mark4之“妖怪”声音大致做了如下测试: 滤波参数调整 (怀疑滤波参数问题&#xff0c;导致振动传入系统&#xff0c;进而桨叶转速变化产生异响)整机螺…

系统学习大模型的20篇论文

【引子】“脚踏实地&#xff0c;仰望星空”&#xff0c; 知其然还要知其所以然。读论文是一条重要的途径&#xff0c;这一篇文章https://magazine.sebastianraschka.com/p/understanding-large-language-models非常值得借鉴&#xff0c;不敢私藏&#xff0c;编译成文。 大型语言…