Sonar是什么
Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
部署
下面我们先来部署一下
这里我们依然使用Docker来部署Sonar
运行Docker 命令 使用官方镜像 sonarqube即可
docker run -d --restart=always --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
与Jenkins集成使用
实践使用中我们需要和CI工具 进行配合使用
这里我们主要讨论与jenkins的集成使用
我们使用Jenkins sonar 插件来集成
进入Jenkins 插件管理页面 选择安装 SonarQube Plugin 即可
安装完成后需要配置一下 sonar 服务的地址 和 用户名密码
然后进入你的Jenkins项目 目录 在构建完成后添加
Invoke Standalone SonarQube Analysis 步骤即可
当然在项目的根目录下还要添加一下Sonar的配置文件
#projectKey项目的唯一标识,不能重复。
sonar.projectKey=XXX
#projectName值不能是中文
sonar.projectName=XXX
sonar.projectVersion=3.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module
# Java module
java-module.sonar.projectName= XXX
java-module.sonar.language=java
# .表示projectBaseDir指定的目录
java-module.sonar.sources=src
java-module.sonar.projectBaseDir=.
#class 文件
java-module.sonar.binaries=./target/classes
好了再次提交代码后 进入Sonar 页面就可以看到当前的项目的情况了