一、安装篇
1安装jdk
2下载sonarqube,地址http://www.sonarqube.org/downloads/
3下载sonar-scanner-cli-3.1.0.1141-linux
将资源放到这个目录
4解压
[root@localhost sonarqube]# unzip -q sonarqube-developer-7.8.zip -d ./softs
[root@localhost sonarqube]# unzip -q sonar-scanner-cli-3.1.0.1141-linux.zip -d ./softs
5启动
[root@localhost linux-x86-64]# cd /usr/local/sonarqube/softs/sonarqube-7.8/bin/linux-x86-64
[root@localhost linux-x86-64]# ./sonar.sh start
6. 浏览器访问
启动不了,查看日志,原来SonarQube不能使用root启动,后面创建一个新用户启动就没问题了,建议已开始就用一个新用户安装。
新建一个用户和组
groupadd es
useradd es -g es -p es
chown -R es /usr/local/sonarqube //把sonar资源分配给用户sonarqube
chgrp -R es /usr/local/sonarqube //把sonar资源分配给组sonarqube
chown -R es /usr/lib/jvm/ //把jdk资源分配给用户sonarqube
chgrp -R es /usr/lib/jvm/ //把jdk资源分配给组sonarqube
修改用户组
[root@localhost softs]# chown -R es:es ./sonar-scanner-3.1.0.1141-linux
7配置中文
1登录(默认admin/admin)
安装中文语言包
重启sonarqube服务
二 使用mysql
1修改配置
[root@localhost conf]# cd /usr/local/sonarqube/softs/sonarqube-7.8/conf
[root@localhost conf]# vim sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://IP:3306/zhoufei?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
2启动:失败,原因
2019.06.29 14:26:03 WARN app[][o.s.application.App] SonarQube will require Java 11+ starting on next version
2019.06.29 14:26:03 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/softs/sonarqube-7.8/temp
2019.06.29 14:26:03 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.06.29 14:26:03 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/softs/sonarqube-7.8/elasticsearch]: /usr/local/sonarqube/softs/sonarqube-7.8/elasticsearch/bin/elasticsearch
2019.06.29 14:26:03 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.06.29 14:26:03 INFO app[][o.e.p.PluginsService] no modules loaded
2019.06.29 14:26:03 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2019.06.29 14:26:08 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 78
2019.06.29 14:26:08 INFO app[][o.s.a.SchedulerImpl] Process[es] is stopped
2019.06.29 14:26:08 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
1、[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
切换到root用户修改配置sysctl.conf
[root@localhost jvm]# vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
[root@localhost jvm]# sysctl -p
vm.max_map_count = 655360
2 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
原因
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
[root@localhost jvm]# ulimit -Hn
4096
[root@localhost jvm]# ulimit -Sn
1024
[root@localhost jvm]#
vim /etc/security/limits.conf
新增(用户退出后重新登录生效)
* hard nofile 65536 * soft nofile 65536
退出用户,在重新登录
3再次启动,失败(上面的问题已经解决了)
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.2019.06.29 14:52:11 WARN app[][o.s.application.App] SonarQube will require Java 11+ starting on next version
2019.06.29 14:52:11 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /usr/local/sonarqube/softs/sonarqube-7.8/temp
2019.06.29 14:52:12 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.06.29 14:52:12 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/usr/local/sonarqube/softs/sonarqube-7.8/elasticsearch]: /usr/local/sonarqube/softs/sonarqube-7.8/elasticsearch/bin/elasticsearch
2019.06.29 14:52:12 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.06.29 14:52:12 INFO app[][o.e.p.PluginsService] no modules loaded
2019.06.29 14:52:12 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.06.29 14:52:21 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
2019.06.29 14:52:21 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/usr/local/sonarqube/softs/sonarqube-7.8]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/sonarqube/softs/sonarqube-7.8/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*:/usr/local/sonarqube/softs/sonarqube-7.8/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /usr/local/sonarqube/softs/sonarqube-7.8/temp/sq-process3177933248837597217properties
2019.06.29 14:52:25 INFO app[][o.s.a.SchedulerImpl] Process[web] is stopped
2019.06.29 14:52:25 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
2019.06.29 14:52:25 INFO app[][o.s.a.SchedulerImpl] Process[es] is stopped
2019.06.29 14:52:25 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
查看web日志
Caused by: org.sonar.api.utils.MessageException: Unsupported mysql version: 5.5. Minimal supported version is 5.6.
原来sonar支持数据库版本至少要5.6。 我修改mysql连接
修改后就成功了,同时在数据库上生成相应的表
三 检测代码
1配置sonar-scanner
[root@localhost conf]# cd /usr/local/sonarqube/softs/sonar-scanner-3.1.0.1141-linux/conf
[root@localhost conf]# vim sonar-scanner.properties
2配置环境变量
[root@localhost sonar-scanner-3.1.0.1141-linux]# vim /etc/profile
[root@localhost sonar-scanner-3.1.0.1141-linux]# source /etc/profile
SONAR_RUNNER_HOME=/usr/local/sonarqube/softs/sonar-scanner-3.1.0.1141-linux
PATH=$SONAR_RUNNER_HOME/bin:$PATH
export SONAR_RUNNER_HOME
export PATH
3校验
[root@localhost sonar-scanner-3.1.0.1141-linux]# sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonarqube/softs/sonar-scanner-3.1.0.1141-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 3.1.0.1141
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 3.10.0-957.el7.x86_64 amd64
[root@localhost sonar-scanner-3.1.0.1141-linux]#
2配置代码
1项目工程目录下,新进一个配置文件sonar-project.properties
[es@localhost 6.3.5.X-online]$ cd /usr/local/sonarqube/project/6.3.5.X-online
[es@localhost 6.3.5.X-online]$ vim sonar-project.properties
#工程key
sonar.projectKey=6.3.5.X-online
#工程名
sonar.projectName=6.3.5.X-online
#
sonar.projectVersion=1.0
#java文件目录
sonar.sources=src
#class文件目录
sonar.java.binaries=target/classessonar.langure=java
sonar.sourceEncoding=UTF-8
[root@localhost 6.3.5.X-online]# sonar-scanner
报错
解决