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配置

<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>
  1. 先进行编译构建然后扫描
mvn clean package
mvn sonar:sonar

参考链接

posted @ 2022-05-08 14:09  Ranger-dev  阅读(72)  评论(0编辑  收藏  举报