在CentOS7上安装SonarQube 7.9.1

本文详细记录了SonarQube 7.9.1版本的安装配置过程,包括解决常见错误的方法,以及如何配置数据库和进行代码质量检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

公司这2年也做了不少项目,由于项目都比较赶,人员少,没有专门做代码评测。这2天空闲,想着把代码质量检测做起来。想到好几年前用的sonar,简单易用,简单配置mysql就可以启动。说干就干!

官网一看,立马完蛋。曾几何时,sonarqube也成了版本帝,且变化如此之大~~~

下载与安装

  • 下载sonarqube。

吐槽一下,下载之难难于上青天,是不是要买个vpn才好使?官网基本废了,好不容易在某网站下载到一个7.9.1版本,我把我找到的地址放在这里:下载地址

  • 下载jdk11。

7.9.1版本的sonarqube需要jdk11

  • 解压、安装jdk

如下步骤配置好jdk,并添加到PATH中

[root@localhost software]# unzip jdk-11_linux-x64_bin.tar.gz
[root@localhost software]# cp jdk11 /usr/local/java/
[root@localhost software]# cd /usr/local/java/jdk11/
[root@localhost jdk11]# pwd
/usr/local/java/jdk11
[root@localhost jdk11]# vim /etc/profile

# 添加JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk11
export PATH=$PATH:$JAVA_HOME/bin

# 使配置生效
[root@localhost jdk11]# source /etc/profile
  • 解压安装sonarqube
# 先创建一个普通用户
# 因为sonarqube用了elasticsearch,es不能用root启动,所以建一个普通用户
[root@localhost jdk11]# useradd sonar

# 切换到该用户下
[root@localhost jdk11]# su - sonar

# 解压缩包,没有unzip命令的,使用命令 'yum -y install unzip' 安装一下
[root@localhost software]# unzip sonarqube791.zip

# 修改脚本文件为可执行
[sonar@localhost sonarqube]$ chmod u+x ./bin/linux-x86-64/sonar.sh
[sonar@localhost sonarqube]$ chmod u+x ./elasticsearch/bin/elasticsearch

# 什么都不要修改,先运行启动命令
[sonar@localhost logs]$ ./bin/linux-x86-64/sonar.sh start

假如你不小心使用了root用户启动,要注意修改temp的属主。

因为es会在该文件夹下自动创建配置文件,属于root用户,当切换为sonar用户启动时,会报权限不够的错误

[root@localhost sonarqube]# chown sonar:sonar -R ./temp/

 

注意:假如启动失败,要到日志下看es.log文件,因为es会有一些莫名的错误,我把常见的解决办法放在这里,供参考:

错误1:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解决办法:
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

错误2:
[2]: max number of threads [1024] for user [es] is too low, increase to at least [2048]

解决办法:
编辑 /etc/security/limits.d/90-nproc.conf,修改如下项:

* soft nproc 1024
#修改为
* soft nproc 2048


错误3:
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:
编辑 /etc/sysctl.conf,追加如下配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

 

 

汉化

 

从Github上下载对应版本的汉化插件,https://github.com/SonarQubeCommunity/sonar-l10n-zh

运行

在浏览器输入: http://ip地址:9000

注意启动页面显示“内嵌数据库只能用于测试场景”,下面我们来配置数据库

数据库配置

查看配置文件,数据库目前只支持如下几种,不再支持Mysql(痛恨):

#----- Oracle 11g/12c/18c/19c
#----- PostgreSQL 9.3 or greater
#----- Microsoft SQLServer 2014/2016/2017 and SQL Azure

建议安装 PostgreSQL,安装教程自行搜索,这里不再赘述了

补充,代码分析

sonarqube搭建好了,那么可以开始代码检查了。

按照官方文档,先配置全局maven的setting.xml文件

<pluginGroups>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
    <!-- sonar -->
    <profile>
      <id>sonar</id>
      <activation>
          <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
          <sonar.host.url>http://192.168.52.200:9000</sonar.host.url>
      </properties>
    </profile>
</profiles>

运行Maven命令:

mvn clean compile sonar:sonar -Dsonar.java.binaries=target/classes  -Dmaven.test.skip=true

这里注意一下:我的sonarqube是安装在虚拟机上的,内存给的不够,一执行mvn命令,就出现服务停止的情况。如果你也有这种现象发生,那么将虚拟机的内存给大一点,最好是2g以上,因为es就要占用1g的内存了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值