SonarQube

SonarQube(前身为Sonar)是一个开源的代码质量管理平台。它提供了一个集中的平台,用于对源代码进行静态代码分析、测量代码质量、跟踪技术债务、管理代码复杂性以及监控代码规范和安全性等方面的指标。SonarQube支持多种编程语言,包括Java、C/C++、C#、Python、JavaScript等,并提供了丰富的插件生态系统,以扩展和定制功能。SonarQube还提供了直观的仪表板和报告,用于可视化和监控代码质量的变化趋势。

Docker形式安装SonarQube

编写docker-compose.yml

version: '3.1'
services:
  db:
    image: postgres
    container_name: db
    ports:
      - 5432:5432
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
  sonarqube:
    image: sonarqube:9.9-community
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - 9000:9000
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
networks:
  sonarnet:
    driver: bridge

启动命令:docker-compose up -d

Windows启动失败查看SonarQube容器日志

bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

启动失败解决办法:https://blog.csdn.net/qq_38680405/article/details/126700722

浏览器打开端口为9000

Maven与SonarQube集成

修改Maven配置文件:settings.xml

在profiles标签中新增SonarQube配置信息并激活配置

<profiles>
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.login>admin</sonar.login>
            <sonar.password>123456</sonar.password>
            <sonar.host.url>http://localhost:9000</sonar.host.url>
        </properties>
    </profile>
</profiles>

<activeProfiles>
    <activeProfile>sonar</activeProfile>
</activeProfiles>

在项目根目录运行:mvn sonar:sonar

image-20230625193319595

在SonarQube提供的可视化界面查看检查结果

image-20230625193442430

SonarScanner

SonarScanner是SonarQube的命令行工具,用于将源代码发送到SonarQube服务器进行分析。它是一个独立的客户端工具,可以与SonarQube进行集成,以便在分析阶段捕获和处理代码。SonarScanner通过读取配置文件(如sonar-project.properties)或通过命令行参数传递配置信息,确定需要分析的项目和相关设置。它会扫描项目的源代码,执行静态代码分析,并将结果提交到SonarQube服务器进行处理和展示。

SonarScanner支持多种构建工具和编程语言,包括Maven、Gradle、Ant、MSBuild等。它可以轻松地集成到持续集成(CI)和持续交付(CD)流程中,使开发团队能够在每次代码提交或构建时自动进行代码质量分析。

下载地址:https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/

下载自己对应的操作系统文件

image-20230625165342274

命令行方式检查代码

打开SonarScanner配置文件:sonar-scanner.properties

image-20230625165522702

更改后的文件内容为

#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server
# 对应sonarQube的url地址
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

执行检查

# 切换到SonarScanner目录
cd E:\environment\sonar-scanner-4.8.0.2856-windows\bin
# 执行
./sonar-scanner.bat -D sonar.java.binaries=./**/target -D sonar.source=./ -D sonar.login=sqa_684223ae6877050107f0b3e3368e72fc06759874 -D sonar.projectKey=bms-project -D sonar.projectBaseDir=E:\overload-working\bms-dianshang-project -D sonar.exclusions=RuoYi-Vue3/**
# 注释
# sonar.java.binaries 编译后的class文件位置
# sonar.source 源码位置
# sonar.login token
# sonar.projectKey 项目的Key
# sonar.projectBaseDir 项目的基本路径
# sonar.exclusions 需要排除的文件夹或者文件
最后修改:2023 年 07 月 04 日
如果觉得我的文章对你有用,请随意赞赏