目录

SonarQube安装与静态代码扫描

软件下载

SonarQube: Download SonarQube | Sonar

所需JDK版本: JDK17以及以上

SonarQube 10.7及以上版本(包括25.x系列)需JDK 17或更高版本‌;从9.6版本开始不再支持JDK 8。

社区版不支持C++检测,如需需额外安装插件(如sonar-cxx),此时需确保SonarQube版本与插件兼容‌

安装

  1. 官网下载sonarqube-x.x.x.zip安装包,然后解压到安装目录

/posts/sonarqube%E5%AE%89%E8%A3%85%E4%B8%8E%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E6%89%AB%E6%8F%8F/images/image-20250825153352592.png

  1. 启动Sonar项目后,提示SonarQube is up 即为服务启动成功

/posts/sonarqube%E5%AE%89%E8%A3%85%E4%B8%8E%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E6%89%AB%E6%8F%8F/images/image-20250825153433038.png

  1. 访问http://localhost:9000/进入SonarQube登录界面,SonarQube的默认用户名/密码为admin/admin,首次登录后需要更改密码

Docker + Sonarqube

1. 准备SonarQube Docker容器

首先,你需要一个运行中的SonarQube容器。你可以使用官方的SonarQube Docker镜像来启动一个容器。

1
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest

这条命令会启动一个SonarQube实例,暴露9000端口,并禁用Elasticsearch的启动检查(在某些环境中可能需要)。

2. 准备Java项目

确保你的Java项目已经设置好,并且有一个有效的pom.xml文件(对于Maven项目)或build.gradle文件(对于Gradle项目)。

3. 配置SonarQube扫描

对于Maven项目:
  1. 在你的项目根目录下,创建一个sonar-project.properties文件,并添加以下内容(根据你的实际情况修改):

    1
    2
    3
    4
    5
    6
    
    propertiesCopy Codesonar.projectKey=my-java-project
    sonar.sources=src
    sonar.java.binaries=target/classes
    sonar.host.url=http://localhost:9000
    sonar.login=admin
    sonar.password=admin
    
  2. 安装并配置SonarQube Scanner。如果你还没有安装,可以通过以下命令安装(对于Debian/Ubuntu):

    1
    
    curl -sL https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip > sonar-scanner.zip && unzip sonar-scanner.zip && rm sonar-scanner.zip
    
  3. 运行SonarQube Scanner:

    1
    
    ./sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner
    
对于Gradle项目:
  1. 在你的项目根目录下,创建一个gradle.properties文件,并添加以下内容(根据你的实际情况修改):

    1
    2
    3
    4
    5
    6
    
    propertiesCopy Codesonar.projectKey=my-java-project
    sonar.sources=.
    sonar.java.binaries=build/classes
    sonar.host.url=http://localhost:9000
    sonar.login=admin
    sonar.password=admin
    
  2. 运行SonarQube Scanner:

    1
    
    ./gradlew sonarqube
    

4. 查看结果

扫描完成后,你可以在浏览器中访问 http://localhost:9000 来查看你的项目的质量报告。使用你的SonarQube实例的用户名和密码登录。

注意事项:

  • 确保SonarQube和你的Java项目在同一网络中,或者正确配置了网络设置以允许访问。
  • 根据你的具体需求调整sonar-project.propertiesgradle.properties文件中的配置项。例如,指定不同的源代码目录或二进制目录。
  • 如果使用的是非root用户,可能需要以适当的方式运行Docker容器或SonarQube Scanner,例如使用sudo或通过用户组管理权限。
  • 确保SonarQube服务器的版本与SonarQube Scanner兼容。如果不确定,可以查看官方文档或使用最新版本的Scanner。