SonarQube
代码审计简述
代码审计指标
- 代码坏味道
- bug和漏洞
- 代码重复度
- 单测与集成
代码审计工具
1.综合性的平台
- SonarQube
2.IDE辅助工具
3.独立的静态分析
SonarQube
一 、搭建
借助docker快速搭建,需要掌握对docker的基本使用
方式一:临时搭建
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
方式二:产品化搭建(8.x以上版本)
1.部署postgres数据库
启动postgres容器
docker run -d --name postgres \
-e POSTGRES_USER=sonarqube \
-e POSTGRES_PASSWORD=sonarqube \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v $PWD/postgresql/:/var/lib/postgresql/data \
postgres
2.部署sonarqube
2.1 创建后面需要的挂载目录,用来存储sonarqube核心数据
mkdir sonarqube_data sonarqube_extensions sonarqube_logs
2.2 修改权限
(8.2版本需要)目前最新版不需要这一步,可忽略
chown -R 999:999 sonarqube_data sonarqube_extensions sonarqube_logs
- docker内部使用sonarqube用户,如果不改权限,挂载本地目录会报错
- sonarqube内部使用的默认用户名分组为999
2.3 启动sonarqube容器
docker run -d --name sonarqube \
-p 9000:9000 -p 9092:9092 \
--link postgres:db \
-e SONARQUBE_JDBC_USERNAME=sonarqube -e SONARQUBE_JDBC_PASSWORD=sonarqube \
-e SONARQUBE_JDBC_URL="jdbc:postgresql://db/sonarqube" \
-v $PWD/sonarqube_data:/opt/sonarqube/data \
-v $PWD/sonarqube_extensions:/opt/sonarqube/extensions \
-v $PWD/sonarqube_logs:/opt/sonarqube/logs \
sonarqube
二、访问
访问地址:http://localhost:9000/
默认账号:admin:admin
登陆后如图
三、安装插件
1.进入插件管理页
在首页依次点击如下菜单项:Administration -> Marketplace
2.安装需要的插件,如java
- PMD: Provide PMD rules to analyse Java projects
- Sonar WebDriver Plugin: Analyzer for WebDriver (Selenium or Appium) tests.
- Checkstyle: Provide Checkstyle rules for Java projects
- Findbugs: Provide Findbugs rules for analysis of Java projects
- MyBatis Plugin for SonarQube: Rules to check SQL statements in MyBatis Mapper XML files.
四、sonar集成到jenkins
详见sonar系列二 - SonarScanner 集成到Jenkins