ps:
SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误.
1、准备环境
Centos7.5, jdk8,mysql 5.6-5.7, sonarqube-7.8
请先确保linux已经安装了jdk8,并且已经配置好了环境变量;
以下是我的虚拟机环境:(ps:jdk、mysql已装好)
[root@localhost ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper
[root@localhost ~]# java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
数据库安装完毕后需要建立一个数据库,sonarQube ,sonarQube 在使用过程中用到这个数据库:
[root@localhost ~]# mysql -uroot -p
Enter password:
mysql> create database sonar charset=utf8;
Query OK, 1 row affected (0.00 sec)
2、安装sonarQube
2.1解压
2.2配置:
[root@localhost local]# cd sonarqube-7.8/
[root@localhost sonarqube-7.8]# ll
total 12
drwxr-xr-x. 6 root root 94 Jun 17 2019 bin
drwxr-xr-x. 2 root root 50 Jun 17 2019 conf
-rw-r--r--. 1 root root 7651 Jun 17 2019 COPYING
drwxr-xr-x. 2 root root 24 Jun 17 2019 data
drwxr-xr-x. 7 root root 131 Jun 17 2019 elasticsearch
drwxr-xr-x. 4 root root 40 Jun 17 2019 extensions
drwxr-xr-x. 6 root root 123 Jun 17 2019 lib
drwxr-xr-x. 2 root root 24 Jun 17 2019 logs
drwxr-xr-x. 2 root root 24 Jun 17 2019 temp
drwxr-xr-x. 7 root root 4096 Jun 17 2019 web
[root@localhost sonarqube-7.8]# cd conf/
[root@localhost conf]# ll
total 24
-rw-r--r--. 1 root root 20422 Jun 17 2019 sonar.properties
-rw-r--r--. 1 root root 3217 Jun 17 2019 wrapper.conf
[root@localhost conf]# vim sonar.properties
[root@localhost conf]# cd ..
配置 sonar.properties:
# Mysql数据用户名
sonar.jdbc.username=root
sonar.jdbc.password=123456
# 配置mysql数据库
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=
maxPerformance&useSSL=false
# 设置sonar服务
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9000
注意:不能用root用户启动,原因是ElasticSearch的安全问题,所以需要新建一个用户,为该用户赋予sonarQube的文件访问权限,再用该用户登录.
[root@localhost sonarqube-7.8]# su esuser
[esuser@localhost sonarqube-7.8]$ su root
Password:
[root@localhost sonarqube-7.8]# chown -R esuser.esuser /usr/local/sonarqube-7.8/
[root@localhost sonarqube-7.8]# ll
total 12
drwxr-xr-x. 6 esuser esuser 94 Jun 17 2019 bin
drwxr-xr-x. 2 esuser esuser 50 Mar 11 22:48 conf
-rw-r--r--. 1 esuser esuser 7651 Jun 17 2019 COPYING
drwxr-xr-x. 2 esuser esuser 24 Jun 17 2019 data
drwxr-xr-x. 7 esuser esuser 131 Jun 17 2019 elasticsearch
drwxr-xr-x. 4 esuser esuser 40 Jun 17 2019 extensions
drwxr-xr-x. 6 esuser esuser 123 Jun 17 2019 lib
drwxr-xr-x. 2 esuser esuser 24 Jun 17 2019 logs
drwxr-xr-x. 2 esuser esuser 24 Jun 17 2019 temp
drwxr-xr-x. 7 esuser esuser 4096 Jun 17 2019 web
[root@localhost sonarqube-7.8]# chmod 777 -R /usr/local/sonarqube-7.8/
[root@localhost sonarqube-7.8]# vim elasticsearch/config/elasticsearch.yml
[root@localhost sonarqube-7.8]# su esuser
[esuser@localhost sonarqube-7.8]$ cd bin
[esuser@localhost bin]$ ls
jsw-license linux-x86-64 macosx-universal-64 windows-x86-64
[esuser@localhost bin]$ cd linux-x86-64/
[esuser@localhost linux-x86-64]$ ls
lib sonar.sh wrapper
[esuser@localhost linux-x86-64]$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.
mysql数据库sonar这个库,会出现大量的表。
访问浏览器http://192.168.160.130:9000/sonarqube,如图:
ps:
1.sonar.properties配置文件中sonar.web.context=/sonarqube配置的就是http://192.168.160.130:9000/sonarqube后的
sonarqube。
2.使用admin/admin登录,页面会多出这个Administration菜单。使用无账号无密码登录,则没有。
附:sonar-l10n-zh
因此,下载sonar-l10n-zh-plugin-1.28。
[esuser@localhost plugins]$ pwd
/usr/local/sonarqube-7.8/extensions/plugins
[esuser@localhost plugins]$ wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar
下载好,然后重启sonar。
[esuser@localhost linux-x86-64]$ ./sonar.sh restart
Gracefully stopping SonarQube...
Stopped SonarQube.
Starting SonarQube...
Started SonarQube.
重新访问:http://192.168.160.130:9000/sonarqube,页面已经是中文版本了。
3.使用SonarQube Maven插件分析代码
在maven的安装目录:如:D:\Program Files (x86)\apache-maven-3.3.9\conf中的settings.xml,加入如下内容:
ps:添加到 <profiles></profiles>标签中。
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://192.168.160.130:9000/sonarqube</sonar.host.url>
</properties>
</profile>
在项目路径下,使用cmd,执行mvn sonar:sonar
等待执行完毕。。。。