一 安装 SonarQube

下载SonarQube:官网下载SonarQube

在这里插入图片描述

我下载的是10.5.1版本,需要jdk17(本地项目也要是jdk17的环境,不然使用SonarQube检测代码时会有报错),所以大家需要提前安装jdk17:jdk17下载

把下载后的SonarQube上传到centos里

在这里插入图片描述

解压

tar -zxvf sonarqube-10.5.1.90531.zip

移动到/usr/local/es文件夹下

mv onarqube-10.5.1.90531 /usr/local/es

由于sonarqube使用了ES,ES不允许root 用户运行,所以开启前需要创建一个非root 用户,这里新建的用户名是maltose


1)创建 elasticsearch 用户组(先创建组, 再创建用户)
[root@localhost ~]# groupadd elasticsearch
		
2)创建用户 maltose 并设置密码
[root@localhost ~]# useradd maltose 
[root@localhost ~]# passwd maltose 

3# 创建es文件夹,并修改owner为maltose 用户
mkdir -p /usr/local/es
chown -R maltose /usr/local/es

4)用户es 添加到 elasticsearch 用户组
[root@localhost ~]# usermod -G elasticsearch maltose 

5)设置sudo权限
#为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作
#三台机器使用root用户执行visudo命令然后为es用户添加权限
[root@localhost ~]# visudo

#在root ALL=(ALL) ALL 一行下面,添加maltose 用户 如下:
maltose  ALL=(ALL) ALL
			 
#添加成功保存后切换到maltose 用户操作
[root@localhost ~]# su maltose 
[maltose@localhost root]$

为了避免报错,切换root用户后,给文件夹赋权限

su root
# maltose:用户名
chown -R maltose  /usr/local/es/sonarqube-10.5.1.90531/temp
chown -R maltose  /usr/local/es/sonarqube-10.5.1.90531
# 切换会非root用户
su maltose

此时,maltose用户,识别不出java环境,即执行java -version时,是找不到java的,我们切换到maltose用户后,编辑~/.bashrc 文件

vim ~/.bashrc   

添加下边两行

export JAVA_HOME=/usr/local/jdk17
export PATH=$JAVA_HOME/bin:$PATH

使其生效:

source  ~/.bashrc 

至此,使用maltose用户,就可以执行java -version命令了。

进入到SonarQube目录

cd /usr/local/es/sonarqube-10.5.1.90531/bin/linux-x86-64

启动与停止

# 启动
./sonar.sh start 
# 停止
./sonar.sh stop

查看日志:

cd /usr/local/es/sonarqube-10.5.1.90531/logs
tail -f  nohup.log

浏览器访问:http://192.168.119.132:9000/,用户名密码都是admin

在这里插入图片描述

修改密码

在这里插入图片描述

进入主页

在这里插入图片描述

注意:如果不小心使用root用户启动后,会报错如下:Failed to launch process [ElasticSearch]

在这里插入图片描述

此时,就算切换回非root用户,也会继续报错

问题原因: 用root启动过会创建temp目录,该目录为root用户所有,使用自己创建的非root用户启动时就会报错

解决方案:使用root用户修改该文件夹的用户组(temp),让它属于非root的启动用户(自己创建的那个),再次启动就ok了 chown -R sonar:sonar /opt/sonarqube-7.6/temp

su root
# maltose:用户名
chown -R maltose  /usr/local/es/sonarqube-10.5.1.90531/temp
chown -R maltose  /usr/local/es/sonarqube-10.5.1.90531
su maltose

至此,SonarQube10.5.1配置完毕,项目里可以使用其检查代码规范了

在maven的conf/setting.xml文件里配置

<!--配置SonarQube服务器信息-->
<profile>
    <id>sonar</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <sonar.login>admin</sonar.login>
        <sonar.password>123456789</sonar.password>
        <sonar.host.url>http://192.168.119.132:9000</sonar.host.url>
    </properties>
</profile>

进入项目根目录,执行:mvn sonar:sonar

在这里插入图片描述

在页面查看结果

在这里插入图片描述

二 SonarQube集成postgresql数据库

cd /usr/local/es/sonarqube-10.5.1.90531/conf

在这里插入图片描述

# 添加数据库信息
vim sonar.properties

添加如下内容

# 数据库需要提前创建好
sonar.jdbc.username=postgres
sonar.jdbc.password=ts12345
# 提前创建好名字为sonarqube的数据库
sonar.jdbc.url=jdbc:postgresql://192.168.119.132:5432/sonarqube?stringtype=unspecified

在这里插入图片描述

用内嵌数据的时候ES不配置文件限制也能启动,但是现在使用外部数据库以后,ES启动会报文件限制异常
在root用户下,做如下修改后,切到非root用户启动SonarQube就行了

# su root
# vim /etc/sysctl.conf
vm.max_map_count=655360

# 使sysctl.conf修改生效
# sysctl -p

#vim  /etc/security/limits.conf,切换用户的时候生效
* soft nofile 65536
* hard nofile 65536

# 记得切换回非root用户
# su maltose

# 先停止
./sonar.sh stop
# 稍等一分钟后再启动
./sonar.sh start 

注意,连接数据库后,登录SonarQube时的用户名密码,又变为原始的admin/admin了,需要再次重新登录修改密码

启动后会自动创建很多表

在这里插入图片描述

Logo

一站式 AI 云服务平台

更多推荐