目录
- 1. 准备安装环境
- 2. 安装postgres数据库
- 3. 安装SonarQube
- 4. 使用SonarQube
1. 准备安装环境
这里安装SonarQube的系统环境是Red Hat Enterprise Linux release 8.7 ,然后将jdk的压缩包(jdk-17.0.2_linux-x64_bin.tar.gz)和sonarQube的压缩包(sonarqube-9.9.0.65466.zip)上传到/usr/local/src目录下,
sonarQube官网下载地址:https://www.sonarsource.com/products/sonarqube/downloads/
sonarQube官网文档地址:
https://docs.sonarqube.org/latest/
初始化环境的脚本init.sh,内容如下,执行脚本 sh init.sh 8.7
#!/bin/bash
if [ -z $1 ]
then echo '$1 is not exists or is empty'
exit
fi
echo "[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/rockylinux/8/BaseOS/\$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-ANOLIS
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/rockylinux/8/AppStream/\$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-ANOLIS
[PowerTools]
name=PowerTools
baseurl=https://mirrors.aliyun.com/rockylinux/8/PowerTools/\$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-ANOLIS
[Extras]
name=Extras
baseurl=https://mirrors.aliyun.com/rockylinux/8/extras/\$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-ANOLIS
" > /etc/yum.repos.d/online.repo
echo 'vers:'$1
sed -i "s/8/$1/g" /etc/yum.repos.d/online.repo
yum install -y vim
yum install -y unzip
紧接着设置系统参数vm.max_map_count
vim /etc/sysctl.conf
修改如下内容
vm.max_map_count=262144
查看修改的参数是否生效,如果生效显示如下
sysctl -p
然后设置配置jdk
先解压
tar -zxvf /usr/local/src/jdk-17.0.2_linux-x64_bin.tar.gz
添加环境变量
echo 'export JAVA_HOME=/usr/local/src/jdk-17.0.2' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
生效环境变量
source /etc/profile
检测环境变量是否生效
java -version
2. 安装postgres数据库
这里就不说明怎么安装postgres数据库,具体安装步骤可以参考这篇博客:https://blog.csdn.net/u010080562/article/details/127349394
3. 安装SonarQube
这里SonarQube是一个java的web项目,依赖elasticsearch和postgres才能运行,因为elasticsearch不能使用root账户运行,所以现在创建用户
创建用户
useradd sonar
echo 'sonar' | passwd --stdin sonar
然后来到/usr/local/src目录解压SonarQube压缩包
unzip sonarqube-9.9.0.65466.zip
然后重命名SonarQube解压后的文件夹名
mv sonarqube-9.9.0.65466 sonarqube
mkdir /var/sonarqube
将sonarqube文件下的所有内容的属主设置成sonar
chown -R sonar:sonar /usr/local/src/sonarqube
chown -R sonar:sonar /var/sonarqube
切换到sonarqube的conf文件下
cd /usr/local/src/sonarqube/conf
编辑配置文件sonar.properties,添加如下内容
#sonar运行产生的数据文件和临时文件存放目录
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
#访问sonar的IP地址、端口号以及上下文,host就填你部署SonarQube的这台主机或者虚拟机的IP,端口随便定,不要和已有端口冲突就行
sonar.web.host=192.168.225.23
sonar.web.port=8888
sonar.web.context=/
#sonar运行需要连接的postgres参数
sonar.jdbc.username=jamy
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:postgresql://192.168.227.192:5432/sonarqube?currentSchema=public
在/usr/local/src/sonarqube/extensions/jdbc-driver目录下创建目录postgresql,用来存放postgresql-42.5.1.jar
cd /usr/local/src/sonarqube/extensions/jdbc-driver
mkdir postgresql
再把postgresql-42.5.1.jar复制到/usr/local/src/sonarqube/extensions/jdbc-driver/postgresql
cp /usr/local/src/sonarqube/lib/jdbc/postgresql/postgresql-42.5.1.jar /usr/local/src/sonarqube/extensions/jdbc-driver/postgresql
接下来就来运行sonar
先启动postgres数据库(这个数据库装在本机或是其他虚拟机都可以,只要能连接就行),等会启动sonar会连接数据的
然后切换到sonar用户下
su sonar
来到sonarqube的bin目录下准备启动
cd /usr/local/src/sonarqube/bin/linux-x86-64
./sonar.sh start
查看启动日志,显示如下图表示启动成功
tail -f /usr/local/src/sonarqube/logs/sonar.log
4. 使用SonarQube
先关闭防火墙再来访问
浏览器访问地址:192.168.225.23:8888
账户 :admin
密码: admin
首次登录后会要求你修改密码
首页是这样的
如果想要中文显示界面,可以安装中文插件
继续往下拉,就可以看到这个按钮,点击它
点击完I understand the risk这个按钮就会出现下面这个界面
搜索到下面这个插件,点击后面的install来安装插件
安装完中文插件,重启SonarQube
重启完需要重新登录
现在再看看界面就是中文界面(大体上是中文,有些还是英文的)
现在看项目啥都没有,需要找个maven项目构建下才能看出效果
在构建maven项目之前需要再maven的配置文件settings.xml添加点东西
1.在<profiles>标签里面添加一个profile
<profile>
<id>sonar</id>
<activation>
<activeByDefult>true</activeByDefult>
</activation>
<properties>
<sonar.login>admin</sonar.login>
<sonar.password>123456</sonar.password>
<sonar.host.url>http://192.168.225.23:8888</sonar.host.url>
</properties>
</profile>
2.在<settings>标签末尾添加这个
<activeProfiles>
<activeProfile>sonar</activeProfile>
</activeProfiles>
3.此时打开一个maven项目构建一下,如下图
此时再来刷新SonarQube的项目界面,看看有什么不一样
到次就结束了,当然SonarQube也可以整合进jenkins,在Jenkins构建项目时使用SonarQube分析代码,后面有时间再更新这一块。。。