环境准备
系统 | 环境 |
---|---|
CentOS Linux release 7.4.1708 | jdk1.8.0_201、maven-3.6.0、sonarqube-7.7、sonar-scanner-3.3.0.1492-linux |
- 软件包下载地址:
链接:https://pan.baidu.com/s/1ACDzcOBe8Y3pzmqta_Nhcw
提取码:kkqu
一、安装 MySQL
注意: MySQL版本必须>=5.6<8.0、 在这里我用的版本是
5.7
SonarQube Docs # 安装哪个版本看那个版本依赖的环境
[root@localhost ~]# wget https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
[root@localhost ~]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm
[root@localhost ~]# yum install mysql-server -y
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/home/mysql/mysql.sock
[root@localhost ~]# mkdir /home/mysql/ -p
[root@localhost ~]# chown mysql. /home/mysql/ -R
[root@localhost ~]# cat /var/log/mysqld.log | grep "root@localhost" # 查看MySQL密码
2022-06-27T01:51:00.541347Z 1 [Note] A temporary password is generated for root@localhost: hnq*Ka:E!6.V
[root@localhost ~]# mysql -uroot -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar'; # 创建SonarQube Server访问数据库的用户:
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> flush privileges;
二、安装 SonarQube 依赖环境
1、创建用户因为sonarqube和elasticsearch都不能使用 root 用户启动
[root@localhost ~]# useradd sonar
[root@localhost ~]# passwd sonarqube
2、修改服务器指标、elasticsearch需要
[root@localhost ~]# vi /etc/sysctl.conf
vm.max_map_count=262144
[root@localhost ~]# sysctl -p
[root@localhost ~]# vi /etc/security/limits.conf
sonar hard nofile 65536
sonar soft nofile 65536
3、安装jdk、maven环境
[root@localhost ~]# tar zxf jdk-8u201-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_201/ /usr/local/
[root@localhost ~]# tar zxf apache-maven-3.6.0-bin.tar.gz
[root@localhost ~]# mv apache-maven-3.6.0/ maven-3.6.0
[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export MAVEN_HOME=/usr/local/maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin
[root@localhost ~]# source /etc/profile
三、安装 SonarQube
[root@localhost ~]# unzip sonarqube-7.7.zip -d /home/
[root@localhost ~]# chown sonar. /home/sonarqube-7.7/ -R # 修改目录拥有者
[root@localhost ~]# su - sonar
[sonar@localhost ~]$ cd /home/sonarqube-7.7/conf/
[sonar@localhost conf]$ cat sonar.properties | grep -v "^#" | grep -v "^$"
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0
sonar.web.port=9000
[sonar@localhost conf]$ vim wrapper.conf
wrapper.java.command=/usr/local/jdk1.8.0_201/bin/java # 修改java环境目录
[sonar@localhost conf]$ cd /home/sonarqube-7.7/bin/linux-x86-64/
[sonar@localhost linux-x86-64]$ ./sonar.sh start # 启动 sonar
[sonar@localhost linux-x86-64]$ tail -30 /home/sonarqube-7.7/logs/sonar.log # 查看启动有没有报错
------
------
2022.06.27 10:55:41 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
2022.06.27 10:55:41 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
四、验证 sonar 访问是否正常
五、sonar 默认是英文
将汉化包放到sonar 安装目录下的 extensions/plugins/sonar-l10n-zh-plugin-1.24.jar、然后重启
六、安装扫描器
[root@localhost ~]# unzip sonar-scanner-cli-3.3.0.1492-linux.zip -d /home/
[root@localhost ~]# vim /etc/profile
export Sonar_Home=/home/sonar-scanner-3.3.0.1492-linux
export PATH=$Sonar_Home/bin:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# cd /home/sonar-scanner-3.3.0.1492-linux/conf/
[root@localhost conf]# vim sonar-scanner.properties
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
七、验证扫描代码
1、创建代码项目
2、创建一个令牌
3、选择自己需要分析的代码语言、将命令复制在自己代码当前执行
[root@localhost ~]# cd /home/sonar/bdqnapp/
[root@localhost bdqnapp]# mvn sonar:sonar \
-Dsonar.projectKey=test \
-Dsonar.host.url=http://172.16.4.183:9000 \
-Dsonar.login=38409a03fc4118120d7b1dc1a7dac53c5e82a641
- sonar 验证扫描结果
8、安全设置
- 强制要求必须登录SonarQube、如果不开启的话匿名用户也可以直接
mvn sonar:sonar
用管理员账号登录SonarQube,打开Administration > Configuration > General Settings > Security,开启Force user authentication,点击Save保存生效。
再次刷新验证
http://172.16.4.183:9000/