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,但是使用的还是默认规则,这里我们需要设置为指定规则

  1. 以admin账号登陆,默认密码admin,打开质量配置profiles页,点击右上方的创建按钮,创建 p3c profiles
  2. 首次创建会跳转到代码规则配置页面,刚新建的 profile 是没有激活任何规则的,需要手动激活,
  3. 点击【激活更多规则】跳转到激活页面,搜索p3c
  4. 批量修改->活动 p3c -> 应用 -> 成功
  5. 绑定规则成功后基本完成,我们返回质量配置,在java选择刚设置的p3c设置为默认。

Maven集成

  1. 以admin账号登陆,默认密码admin,点击我的账户,令牌,生成令牌Token记住。

  2. pom配置


    1.8
    http://192.168.33.12:9000/
    bd75a5e47805ee586f9afca1026561f73b4cf1fc



    
        
            org.sonarsource.scanner.maven
            sonar-maven-plugin
            3.9.1.2184
        
    

  1. 先进行编译构建然后扫描
mvn clean package
mvn sonar:sonar

参考链接

  • https://docs.sonarqube.org/latest/
  • https://zhuanlan.zhihu.com/p/82277714
  • https://github.com/xuhuisheng/sonar-l10n-zh