SonarQube 简介
SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。
SonarQube平台安装配置
1.2.1 组件与服务组成
- SonarQube Server启动3个主要进程:
-
- Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例
- 基于Elasticsearch的Search Server从UI进行搜索服务。
- Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中。
- SonarQube数据库要存储:SonarQube实例的配置(安全,插件设置等)项目,视图质量快照。
- 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件。
- 在持续集成服务器上运行一个或多个SonarScanner,以分析项目。
- Java (Oracle JRE 11 or OpenJDK 11)
mkdir -p /data/devops/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data} chmod 777 -R /data/devops/sonarqube/ docker run -itd --name sonarqube \ -p 9000:9000 \ -v /data/devops5/sonarqube/sonarqube_conf:/opt/sonarqube/conf \ -v /data/devops5/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \ -v /data/devops5/sonarqube/sonarqube_logs:/opt/sonarqube/logs \ -v /data/devops5/sonarqube/sonarqube_data:/opt/sonarqube/data \ sonarqube:lts-community
- 查看日志
docker logs -f sonarqube
访问
URL:ip:9000/ admin admin
安装中文插件
配置Scanner
scanner的类型有很多, 可以通过官网:https://docs.sonarqube.org/8.9/analysis/overview/ 获取支持的列表。
- 变更项目代码: 可以使用构建工具进行扫描。例如maven、ant、gradle可以在配置文件中引入对应的配置。
- 不变更项目代码配置: 可以使用Jenkins或其他平台的扩展插件, 以及使用命令行进行扫描。
- Gradle - SonarScanner for Gradle
- .NET - SonarScanner for .NET
- Maven - use the SonarScanner for Maven
- Jenkins - SonarScanner for Jenkins (Jenkins 集成插件)
- Azure DevOps - SonarQube Extension for Azure DevOps (devops平台扩展插件)
- Ant - SonarScanner for Ant
- anything else (CLI) - SonarScanner(更加通用的扫描命令行)
下载CLI包
[root@i-sfg7loip ~]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip [root@i-sfg7loip ~]# unzip sonar-scanner-cli-4.7.0.2747-linux.zip [root@i-sfg7loip ~]# mv sonar-scanner-4.7.0.2747-linux /usr/local/ [root@i-sfg7loip ~]# vim /etc/profile.d/sonar-scanner.sh export SONAR_SCANNER_HOME=/usr/local/sonar-scanner-4.7.0.2747-linux export PATH=$SONAR_SCANNER_HOME/bin:$PATH [root@i-sfg7loip ~]# source /etc/profile
测试
[root@i-sfg7loip ~]# sonar-scanner -v INFO: Scanner configuration file: /usr/local/sonar-scanner-4.7.0.2747-linux/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarScanner 4.7.0.2747 INFO: Java 11.0.14.1 Eclipse Adoptium (64-bit) INFO: Linux 4.18.0-372.9.1.el8.x86_64 amd64
这里请注意JDK版本的问题, 默认安装的sonarscanner是使用自带的jdk。通过上面的显示可以发现是jdk1.11版本, 如果想使用系统默认的jdk版本,可以修改scanner可执行程序的配置。如下所示:
[root@i-sfg7loip ~]# vim /usr/local/sonar-scanner-4.7.0.2747-linux/bin/sonar-scanner 42 use_embedded_jre=true 43 if [ "$use_embedded_jre" = true ]; then 44 export JAVA_HOME="$sonar_scanner_home/jre" 45 fi 改成 42 use_embedded_jre=false 43 if [ "$use_embedded_jre" = true ]; then 44 export JAVA_HOME="$sonar_scanner_home/jre" 45 fi
继续阅读
评论