1. 设置 SonarQube 服务器
确保你的 SonarQube 服务器已经启动并运行。你可以使用 Docker 来启动 SonarQube 服务器:
docker run -d --name sonarqube -p 9000:9000 sonarqube
访问 http://localhost:9000
并登录(默认用户名和密码都是 admin
)。配置你的项目和生成一个 SonarQube 令牌。
公共地址:
https://sonarqube.hogwarts.ceshiren.com/projects
准备代码扫描工具
下载 SonarScanner CLI,这个工具用于分析项目并将结果发送到 SonarQube。你也可以使用 Docker 来运行 SonarScanner。
项目实例
https://github.com/SonarSource/sonar-scanning-examples.git
4. 编写 sonar-project.properties
文件
在你的项目根目录下创建一个 sonar-project.properties
文件,包含以下内容:
sonar.projectKey=your_project_key
sonar.host.url=http://localhost:9000
sonar.login=your_sonar_token
# 可选配置
sonar.projectName=Your Project Name
sonar.projectVersion=1.0
sonar.sources=src
5. 使用 Docker 运行 SonarScanner
以下是一个使用 Docker 执行 SonarScanner 的示例命令:
docker run --rm \
-e SONAR_HOST_URL="http://host.docker.internal:9000" \
-e SONAR_LOGIN="your_sonar_token" \
-v "$(pwd)":/usr/src \
sonarsource/sonar-scanner-cli
6. 查看扫描结果
完成扫描后,你可以登录 SonarQube 服务器查看项目的扫描结果和详细报告。
完整示例
假设你有一个项目目录结构如下:
my-project/
├── sonar-project.properties
└── src/
└── main.py
在 sonar-project.properties
文件中,你可以配置项目和 SonarQube 服务器的信息。
然后在项目根目录下运行以下命令:
docker run --rm \
-e SONAR_HOST_URL="http://localhost:9000" \
-e SONAR_LOGIN="your_sonar_token" \
-v "$(pwd)":/usr/src \
sonarsource/sonar-scanner-cli
这将会启动 SonarScanner 并分析你的代码,然后将结果上传到 SonarQube 服务器。你可以在 SonarQube 仪表板中查看结果。
mvn sonar
mvn clean test org.sonarsource.scanner.maven:sonar-maven-plugin:LATEST:sonar -Dsonar.host.url=https://sonarqube.hogwarts.ceshiren.com/