版本要求
https://docs.sonarqube.org/latest/requirements/requirements/
安装PostgreSQL
1 | docker pull postgres |
修改host
1 | vi /etc/hosts |
通过Navicat for Postgres连接
dev.mypostgres.com
5432
sonar/sonar
安装jdk11
1 | vi /etc/profile |
SonarQube安装配置
使用zip安装
下载zip文件(http://www.sonarqube.org/downloads/)
1 | unzip sonarqube-8.3.1.34397.zip |
设置DB
在pg中建立数据库
1 | create database sonar; |
1 | vi /data/sonarqube/conf/sonar.properties |
添加JDBC驱动程序
已经提供了支持的数据库(Oracle除外)的驱动程序。不要更换提供的驱动程序;他们是唯一受支持的。
1 | /data/sonarqube/lib/jdbc |
oracle 数据库需要单独添加驱动,其他数据库已经默认提供
1 | /data/sonarqube/extensions/jdbc-driver |
配置Elasticsearch存储路径
默认情况下,Elasticsearch数据存储在$ SONARQUBE-HOME / data中,但不建议将其用于生产实例。相反,您应该将此数据存储在其他位置,最好是在具有快速I / O的专用卷中。除了保持可接受的性能外,这样做还可以简化SonarQube的升级。
1 | vi /data/sonarqube/conf/sonar.properties |
特别配置jdk路径
1 | vi /data/sonarqube/conf/wrapper.conf |
linux系统参数优化
1 | vi /etc/sysctl.d/99-sonarqube.conf(或/etc/sysctl.conf文件) |
启动Web服务器
1 | vi /data/sonarqube/conf/sonar.properties |
sonar不能使用root启动
1 | useradd sonar |
1 | su - sonar |
设置域名
1 | vi /etc/hosts |
访问:
默认账号:admin/admin
安装中文插件
install -> restart
使用systemd管理启动
SonarScanner安装配置
文档:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下载zip包安装
1 | unzip sonar-scanner-cli-4.3.0.2102-linux.zip |
配置
1 | vi /data/sonar-scanner/conf/sonar-scanner.properties |
扫描maven工程示例
1 | cd /data/components/leancloud-proxy |
执行扫描
1 | sonar-scanner |
http://dev.mysonar.com:9011/projects
扫描php工程示例
1 | cd /data/public_html |
1 | sonar-scanner |
http://dev.mysonar.com:9011/projects
jenkins + SonarScanner
安装SonarQube Scanner插件
Jenkins → 系统管理 → 管理插件 → 可选插件 → 🔍SonarQueue Scanner
安装以后重启
配置SonarQube
首先,在SonarQube中生成一个Token(PS:用token代替输入用户名和密码)
1 | bb6ad69138f3607af1082565551846a5b23eb310 |
然后,在Jenkins中配置连接sonarqube服务器的地址,这里用到的token就是刚才在sonarqube中创建的那个token
系统设置
最后,配置全局工具配置
创建任务
1 | sonar.projectKey=php-trunk |