SonarQube安装与静态代码扫描
目录
软件下载
SonarQube: Download SonarQube | Sonar
所需JDK版本: JDK17以及以上
SonarQube 10.7及以上版本(包括25.x系列)需JDK 17或更高版本;从9.6版本开始不再支持JDK 8。
社区版不支持C++检测,如需需额外安装插件(如sonar-cxx),此时需确保SonarQube版本与插件兼容
安装
- 官网下载sonarqube-x.x.x.zip安装包,然后解压到安装目录

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

-
访问http://localhost:9000/进入SonarQube登录界面,SonarQube的默认用户名/密码为admin/admin,首次登录后需要更改密码
Docker + Sonarqube
1. 准备SonarQube Docker容器
首先,你需要一个运行中的SonarQube容器。你可以使用官方的SonarQube Docker镜像来启动一个容器。
|
|
这条命令会启动一个SonarQube实例,暴露9000端口,并禁用Elasticsearch的启动检查(在某些环境中可能需要)。
2. 准备Java项目
确保你的Java项目已经设置好,并且有一个有效的pom.xml文件(对于Maven项目)或build.gradle文件(对于Gradle项目)。
3. 配置SonarQube扫描
对于Maven项目:
-
在你的项目根目录下,创建一个
sonar-project.properties文件,并添加以下内容(根据你的实际情况修改):1 2 3 4 5 6propertiesCopy 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 -
安装并配置SonarQube Scanner。如果你还没有安装,可以通过以下命令安装(对于Debian/Ubuntu):
1curl -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 -
运行SonarQube Scanner:
1./sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner
对于Gradle项目:
-
在你的项目根目录下,创建一个
gradle.properties文件,并添加以下内容(根据你的实际情况修改):1 2 3 4 5 6propertiesCopy Codesonar.projectKey=my-java-project sonar.sources=. sonar.java.binaries=build/classes sonar.host.url=http://localhost:9000 sonar.login=admin sonar.password=admin -
运行SonarQube Scanner:
1./gradlew sonarqube
4. 查看结果
扫描完成后,你可以在浏览器中访问 http://localhost:9000 来查看你的项目的质量报告。使用你的SonarQube实例的用户名和密码登录。
注意事项:
- 确保SonarQube和你的Java项目在同一网络中,或者正确配置了网络设置以允许访问。
- 根据你的具体需求调整
sonar-project.properties或gradle.properties文件中的配置项。例如,指定不同的源代码目录或二进制目录。 - 如果使用的是非root用户,可能需要以适当的方式运行Docker容器或SonarQube Scanner,例如使用
sudo或通过用户组管理权限。 - 确保SonarQube服务器的版本与SonarQube Scanner兼容。如果不确定,可以查看官方文档或使用最新版本的Scanner。