SonarQube系列一、Linux安装与部署
来源:https://www.cnblogs.com/7tiny/p/11269774.html
【前言】
随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是bug的增多和代码债务的堆积。因此,代码review便日益提上了日程。当然人工review的效率还是相当低下的,于是我们采用了自动化代码review的工具,便是今天的主角:SonarQube。
本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下:
SonarQube系列一、Linux安装与部署
SonarQube系列二、分析dotnet core/C#代码
SonarQube系列三、如何集成jenkins实现分析自动化
【SonarQube简介】
SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:
SonarQube集成 gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。
总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。
官方网站:https://www.sonarqube.org/
【SonarQube安装】
打开官网(上述官网地址),便可以很容易看到官方文档的菜单,安装步骤在官网很清楚了,我们参考文档进行安装,这里记录整个安装的过程以便帮助一些看文档迷惑的学者。
官方文档地址:https://docs.sonarqube.org/latest/
1.首先别忙着下载
左侧有下拉框可以选择sonarqube的各个版本,我们可以选择切换不同的版本以查看不同时期的文档
我们首先打开 Requirements ,查看当前版本的软硬件支持。
SonarQube 依赖于Java 环境,也就是需要安装Jre,在这里写了支持的版本:
SonarQube 支持的数据库有:PostgreSQL,Microsoft SQL Server,Oracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用 Mysql 可能会遇到很多坑(我就被坑的不轻)。当然有的朋友想用Mysql数据库,那么可以选择安装 7.7 以下版本(包括7.7)。
SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES。
因为我用到了Mysql数据库,综合软硬件说明我选择了7.6版本的SonarQube进行下载安装。
2.下载 SonarQube
同样在左侧菜单找到 Setup and Upgrade 选项,打开以后按步骤找到 Download 链接,下载对应版本的安装包。
SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。
下载完成后,我们把安装包 sonarqube-7.6.zip 放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压
unzip sonarqube-7.6.zip
进入文件夹,我们了解几个重要的目录
bin目录存放了各个环境的启动脚本
conf目录存放着sonarqube的配置文件
logs目录存放着启动和运行时的日志文件
3.配置 SonarQube
关于jdk的安装这里就不多说了,我们直接进入sonarqube 的配置。
我们首先需要通过配置文件修改 sonarqube 的 mysql 连接字符串等信息,打开 conf 目录的 sonar.properties
我们只需要修改mysql部分就ok了,其他不用过多设置
#----- 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://localhost:39901/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=falsesonar.jdbc.username=sonarqubesonar.jdbc.password=xxxxx
这里的配置是按照官方文档的介绍,在mysql添加了一个 sonarqube 的用户,并且创建了一个数据库叫 sonarqube ,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。
sonarqube web 默认端口号为 9000 如果想修改成其他端口可以通过下面这个设置修改其他端口号。
wrapper.conf 这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等,可以关注下自己的 java 命令路径,其他不用太过关注。
4.SonarQube 启动
打开 sonarqube 的下载目录的bin目录,里面列举了各个平台的启动脚本
启动之前先使用 chown 命令将sonarqube-7.6及其子目录授权给一个非root的用户,sonarqube及其es等软件禁止 root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。
然后我们找到对应平台的脚本,我的系统是64位的linux,进入 linux-x86-64 目录
启动sonar,执行 sonar.sh 脚本,并添加 start 参数
./sonar.sh start
如果不添加参数,会出现如下提示,是因为该脚本有必要的参数,包含了sonar服务的启动/停止/重启/dump等操作,可以根据使用场景提供不同的参数。
启动之后,我们浏览器访问对应服务器ip地址的9000端口(防火墙要提前放行9000端口)
如果没有成功,那么就在logs目录查看启动日志。一般有几种:
es.log es或mysql等数据库连接报错,一般是mysql的连接字符串账号密码错误或者sonar账号权限不够;
es.log 数据库初始化失败 MySQL sonar 账户权限不足
sonar.log sonar服务的启动日志
web.log sonarqube web的启动日志
如果一切顺利的话,就会进入登陆页面,账号密码都是 admin。
【SonarQube插件】
关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧。
在顶部的菜单栏,配置里面,按下图步骤,在下面插件搜索栏输入chinese,即可搜到中文插件,然后点安装。
等待安装完毕,提示重启sonar后,便自动切换到了中文界面。
-END-
看完本文的你是否有所收获?
请转发给更多人关注
【猿学圈】
提升IT技能~
长按关注,谢谢转发
学海无涯,别担心,有我陪着你~
点个赞,让我在心里记住你 ☟
SonarQube系列一、Linux安装与部署相关推荐
- Linux安装和部署
Linux的安装和部署 一. 虚拟机的安装和使用 1.1 VMware Workstation的安装 1.1.1 注意事项: 1.1.2 软件来源和版本: 1.1.3 安装流程: 1.1.4 网络设置 ...
- linux安装docker部署java项目
大家好,我是烤鸭: 分享一下linux上部署docker的javaweb项目 1.环境 linux centos 7.2 64-bit 系统 kernel 3.10+ 查看版本号 : uname -r ...
- UCMA(OCS) 开发系列之二(安装与部署)
打包 使用Visual Studio 2013 发布方式如下: 1. 右键工程 -->publish 2. Publish method 选择File System 3. Configurati ...
- Nginx 在centos linux 安装、部署完整步骤并测试通过
需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩. 1.选定源码目录 选定目录 /usr/local/ cd /usr/local/ 2.安装PCRE库 cd /usr/ ...
- linux安装自动化部署工具jenkins
创建工程目录 mkdir /home/software/jenkins 创建工作空间 mkdir /home/workspaces/jenkins 进入工程目录 cd /home/software/j ...
- linux安装jetty部署war包,jetty部署war包
与tomcat类似,直接拷贝war到webapps目录即可,不同的是解压文件不会存放到webapps下. 需要做一些额外配置,才能找到正确解压目录 Q: How to change the extra ...
- SonarQube系列二、分析dotnet core/C#代码
来源:https://www.cnblogs.com/7tiny/p/11342902.html [前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcor ...
- Docker系列之RabbitMQ安装部署教程
Docker系列之RabbitMQ安装部署教程 因为学习RabbitMQ需要,需要安装RabbitMQ,网上找资料,RabbitMQ官方提供了window版.Linux版.Docker版的管理页面,为 ...
- Linux(Centos7)下redis5安装、部署、开机自启
1.什么是redis redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串 ...
最新文章
- 设置select下拉框不可修改的→“四”←种方法
- 【C++】用类来处理排序问题
- linux日志系统的实现,一个同步日志系统的简单实现 log for c (linux 平台)
- jquery eaayui 学习(三)tab
- kill qz _e epi,eu,ex,exo out3
- php 查询数据库 刷新,这个每次刷新都要去数据库里面查询一遍吗?
- java探针之修改类字节码文件
- python 存储图片 alpha_保存时Matplotlib图形面颜色alpha(背景色、透明度)
- P3698 [CQOI2017]小Q的棋盘
- 宿主机支持avx2指令集,为什么虚拟机cpu就不支持avx2指令集了
- SnakeYAML配置文件解析器
- 中国生态城市规划行业“十四五”规划与前景规模预测报告2022-2028年版
- PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位,单位功率因数运行
- 虚幻4蓝图各颜色代表的含义
- 优秀logo设计解析_国外30个优秀的logo的设计思维分析
- 【C++】约瑟夫环问题:任给正整数n和k,按下述方法可以得到1,2, …n的一个置换:将数字1,2,…,n环形排列,按顺时针方向自1开始报数,报到K时输出该位置上的数字,并使其出列。
- 状态机-简单、重要、高可应用性的思想
- 电脑安装了金山毒霸,手机连接电脑,输入adb devices 无法获取设备信息的解决方法
- linux建立分区,介绍Linux硬盘系统建立分区步骤
- CAD模型转为点云模型/三维点云转为灰度图
热门文章
- linux 内核fpic,linux编译动态库 fPIC作用
- 循序渐进DB2(第2版)——DBA系统管理、运维与应用案例
- LoadRunner+Android模所器实现抓包并调试本地服务端
- [cocos2d]修改富文本文本和高度
- 52Exchange 2010升级到Exchange 2013-升级SH站点Ex2010到2013
- linux 安全审计
- ASP.NET MVC 上传大文件时404
- .NET应用程序中异步调用Web Service的几种方法 come from: veryhappy(wx.net)
- 我做了一个 Istio Workshop,这是第一讲介绍
- 微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能