1. 下载并安装 JDK
2.下载安装 MySQL
3.下载安装 SonarQube
http://www.sonarqube.org/downloads/
3.1 配置 SonarQube
编辑配置文件,配置连接数据库(需要事先在mysql上创建好sonar
库,UTF8编码)
主要配置:
3.2 Linux 系统要求
- Sonarqube 一定运行在非
root
账户下 vm.max_map_count
必须大于或等于262144
fs.file-max
必须大于或等于65536
- 运行 SnonarQube 的用户至少可以打开
65536
文件描述符(file descriptors) - 运行 SnonarQube 的用户至少可以打开
2048
线程 - seccomp 必须已被编译到内核
3.2.1 内核参数
可以通过以下命令查看相关内核参数:
可以通过root账户执行以下命令快速设置当前会话的内核参数:
要更永久地设置这些值,必须更新/etc/sysctl.d/99-sonarqube.conf
或/etc/sysctl.conf
以生效这些值:
如果运行 SonarQube(本例中为sonar
)的用户没有至少 65536 个开放描述符的权限,则必须在/etc/security/limits.d/99-sonarqube.conf
或/etc/security/limits.conf
中插入:
使配置生效:
可以在Elasticsearch文档中获得更多详细信息 。
3.2.2 seccomp 过滤器
默认情况下,Elasticsearch 使用的是 seccomp过滤器。在大多数发行版中,此功能在内核中激活,但在Red Hat Linux 6
等发行版中,此功能已停用。如果您使用的是没有此功能的发行版,并且无法升级到激活了 seccomp的较新版本,则必须通过更新sonar.properties
中的sonar.search.javaAdditionalOpts
来显式停用此安全层:
可以使用以下命令检查内核上是否有 seccomp:
如果内核有seccomp,将会看到:
有关更多详细信息,可以参阅Elasticsearch文档。
4 启动 SonarQube
系统中必有一个非root用户,因为 SonarQube 里使用的elasticsearch
不允许使用root 账号启动。
我们创建一个名为 sonar 的用户:
启动:
5.配置界面访问
Sonar 默认监听的端口时
9000
,可以在sonar.properties
中通过sonar.web.port=
来修改。
启动后,浏览器器访问:http://xxxx:9000
,默认账户:admin/admin
。
6.安装 SoanrQube 汉化包(可选)
访问 https://github.com/SonarQubeCommunity/sonar-l10n-zh 下载对应版本中文插件包
重启服务,即可。
7.安装 SonarQube Scanner 客户端
访问 https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
SonarQube 是服务器端,它主要有两个功能:
- 分析源代码;因为它内嵌了Apache模块,所以提供Web端的界面访问。
- SonarQube Scanner 是一个利用 SonarQube 服务端分析代码的命令行工具,可以把它简单理解为客户端。
。。。。。
评论区