ubuntu搭建SonarQube
简介
SonarQube 是一个基于开源 Web 的工具,用于管理代码质量和代码分析。它最广泛地用于连续的代码检查,它会检测编程语言错误,代码味道和漏洞问题,编程语言如 PHP,C#,JavaScript,C/C++ 和 Java,检测以后还跟踪统计和创建图表,使开发人员能够快速识别代码中的问题。
预先配置
sonarqube official page 提到当前已经不支持 MySQL,安装和运行 SonarQube 前需要在当前会话终端增加如下参数的值:
1 | sudo sysctl -w vm.max_map_count=262144 |
初始化基本工具
1 | sudo apt-get update |
安装JDK
1 | sudo apt-get install openjdk-11-jdk -y |
安装 PostgreSQL 10
首先添加并下载 PostgreSQL 存储库,接着安装 PostgreSQL 数据库服务器,使它在启动时自启动。然后更改默认 PostgreSQL 用户的密码,切换到 PostgreSQL shell 创建新用户,为 SonarQube 数据库的新创建用户设置密码。
1 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' |
安装SonarQube
1 | sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.5.zip |
配置SonarQube
不能以 root 用户来运行 Snarqube,如果使用 root 用户运行,它会自动停止。创建 sonar 用户和组。
创建组和用户
1 | sudo groupadd sonar |
配置/opt/sonarqube/conf/sonar.properties
1 | sonar.jdbc.username=sonar |
编辑 SonarQube 脚本文件
1 | sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh |
启动SonarQube
1 | sudo su sonar |
配置系统服务
1 | cd /opt/sonarqube/bin/linux-x86-64/ |
访问 SonarQube
使用浏览器输入服务器 IP 访问 SonarQube,端口 9000。登录 SonarQube 的默认管理员用户名和密码都是 admin。
错误解决
max virtual memory areas vm.max_map_count [65530] is too low
1 | loaded plugin [org.elasticsearch.transport.Netty4Plugin] ERROR: [1] bootstrap checks failed. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]. |
解决方案:
Elasticsearch 使用 MMap FS 目录来存储其索引。mmap 计数的默认操作系统限制可能太低,这可能会导致内存异常。输入以下命令增加虚拟内存值,如果要永久设置这个值,请更新 /etc/sysctl.conf 中的 vm.max_map_count 和 fs.file-max 值,然后重启系统。
1 | sudo sysctl -w vm.max_map_count=262144 |
log 提示不能加载 JVM
1 | Wrapper Started as Daemon |
解决方案:
1 | vim /opt/sonarqube/conf/wrapper.conf |
安装中文插件
以管理员身份登录管理页面,安装汉化包。
在 Administration 菜单中选中 Marketplace,输入 Chinese 搜索中文的汉化包
点击安装,安装完成之后出现 Restart Server,点击确定,SonarQube 自动重启,完成汉化。