devops-sonarqube
确定版本
sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本。
从 7.9 以后 sonar 最低支持版本为 jdk 11。
从 7.9 以后 不再支持MySQL而推荐转向PostgreSQL
系统配置
sonarqube 内置es,需要修改系统配置
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
====================
vim /etc/sysctl.conf
vm.max_map_count=262144
====================
sysctl --system
docker-compose
- 使用嵌入式数据库运行
# 汉化版+阿里p3c验证
version: "3.6"
services:
sonarqube:
image: sonarqube:7.8-community
restart: always
ports:
- "9000:9000"
volumes:
- ./data:/opt/sonarqube/data
- ./plugins/sonar-pmd-plugin-3.2.0.jar:/opt/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0.jar
- ./plugins/sonar-l10n-zh-plugin-1.28.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-1.28.jar
- 使用mysql
version: "3.6"
services:
sonarqube:
image: sonarqube:7.8-community
restart: always
ports:
- "9000:9000"
environment:
- sonar.jdbc.url=jdbc:mysql://192.168.33.12:3306/sonarqube?ssl=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&allowMultiQueries=true
- sonar.jdbc.username=sonar
- sonar.jdbc.password=sonar
volumes:
- ./data:/opt/sonarqube/data
- ./plugins/sonar-pmd-plugin-3.2.0.jar:/opt/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0.jar
- ./plugins/sonar-l10n-zh-plugin-1.28.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-1.28.jar
设置java扫描默认规则
虽然已经集成了阿里P3C,但是使用的还是默认规则,这里我们需要设置为指定规则
- 以admin账号登陆,默认密码admin,打开质量配置profiles页,点击右上方的创建按钮,创建 p3c profiles
- 首次创建会跳转到代码规则配置页面,刚新建的 profile 是没有激活任何规则的,需要手动激活,
- 点击【激活更多规则】跳转到激活页面,搜索p3c
- 批量修改->活动 p3c -> 应用 -> 成功
- 绑定规则成功后基本完成,我们返回质量配置,在java选择刚设置的p3c设置为默认。
Maven集成
-
以admin账号登陆,默认密码admin,点击我的账户,令牌,生成令牌Token记住。
-
pom配置
<properties>
<java.version>1.8</java.version>
<sonar.host.url>http://192.168.33.12:9000/</sonar.host.url>
<sonar.login>bd75a5e47805ee586f9afca1026561f73b4cf1fc</sonar.login>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.9.1.2184</version>
</plugin>
</plugins>
</build>
- 先进行编译构建然后扫描
mvn clean package
mvn sonar:sonar