Sonar:Sonar的介绍

  • 时间:2025-11-14 22:23 作者: 来源: 阅读:1
  • 扫一扫,手机访问
摘要:原文:Sonar静态扫描的使用 - 简书 (jianshu.com) 一、简介 SonarQube是一个用于代码质量管理的开源平台,用于管理多源代码的质量,目前支持Java、JS、PHP、Python、C等25+语言。 通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,列如findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量

原文:Sonar静态扫描的使用 - 简书 (jianshu.com)

一、简介

SonarQube是一个用于代码质量管理的开源平台,用于管理多源代码的质量,目前支持Java、JS、PHP、Python、C等25+语言。
通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,列如findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

简单来说,SonarQube是一个质量平台,用于收集质量数据(代码扫描结果、测试覆盖率等),并对数据进行各维度的统计分析。
而代码分析(也就是得到质量数据的过程),需要用到Sonar的客户端(或插件)。下面就简单介绍一下sonar客户端(插件)的使用。

Sonar的客户端共有四种:
  1. Sonar-Scanner。一个独立的扫描器,通过简单的命令就能对项目进行静态扫描,并将扫描结果上传至SonarQube。
  2. sonar maven插件。一个maven插件,能通过maven命令执行静态扫描。
  3. sonar ant插件。ant上的插件。
  4. sonar IDE插件。可以直接集成到IDE中(列如IntelliJ)。

以下主要介绍前两种的用法。

二、Sonar-Scanner的使用

1. 下载Sonar-Scanner包,并解压。(需要注意的是,Sonar-Scanner版本与SonarQube存在版本兼容性,若不兼容会有相应的报错提示)
2. 将Sonar-Scanner目录/bin路径加入环境变量。
3. 编辑Sonar-Scanner目录/conf/sonar-runner.properties文件,如下所示,填写SonarQube的相关信息(安照实际情况填写url和login信息):

sonar.host.url=http://127.0.0.0:8090

#----- MySQL
sonar.jdbc.url=jdbc:mysql://127.0.0.0:3306/sonar?useUnicode=true&characterEncoding=utf8

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

#----- Security (when  sonar.forceAuthentication  is set to  true )
sonar.login=admin
sonar.password=admin

4. 在需要扫描的项目根目录,新建一个文件sonar-project.properties,文件中填入以下必要信息:

# 需要扫描的源代码目录
sonar.sources=src
# 项目的Key,可任意,必须唯一
sonar.projectKey=org.sonarqube.demo
# 项目在SonarQube上显示的名称
sonar.projectName=php demo
# 项目版本
sonar.projectVersion=1.0
# 扫描的语言
sonar.language=php

备注1:还可以填写其它参数,详细见官方文档。
备注2:在Jenkins中,可以通过sonar插件配置以上数据,可免去在项目中配置该文件。

5. 打开终端,进入项目根目录,mac下执行sonar-runner,windows下执行sonar-runner.bat命令即可。

扫描成功后,数据会自动上传到SonarQube。

三、Maven中Sonar的使用

1. 打开"maven安装目录/conf/settings.xml",在<profiles></profiles>标签中增加以下配置信息(安照实际情况填写url、账号等):

<profile>
   <id>sonar</id>
   <activation>
       <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
        <sonar.jdbc.url>
        jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
        </sonar.jdbc.url>
        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
       <sonar.host.url>http://127.0.0.1:8090</sonar.host.url>
       <sonar.login>admin</sonar.login>
       <sonar.password>admin</sonar.password>
   </properties>
</profile>

2. 在pom.xml中配置sonar插件

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.6</version>
</plugin>

3. 执行mvn sonar:sonar即可。

</article>

4人点赞

Jenkins

作者:sheenaghWS
链接:https://www.jianshu.com/p/582240fa53fa
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】在Android中将Gradle Groovy DSL迁移到 Gradle Kotlin DSL(2025-11-14 22:49)
【系统环境|】Kotlin DSL: 在Gradle构建脚本中替代Groovy的优势(2025-11-14 22:49)
【系统环境|】在 Android 中掌握 Kotlin DSL(2025-11-14 22:48)
【系统环境|】android gradle groovy DSL vs kotlin DSL(2025-11-14 22:48)
【系统环境|】在Kotlin中实现DSL领域特定语言实例解析(2025-11-14 22:47)
【系统环境|】Kotlin 的 DSL 实践(2025-11-14 22:47)
【系统环境|】Kotlin DSL 实战:像 Compose 那样写代码(2025-11-14 22:46)
【系统环境|】当 Adapter 遇上 Kotlin DSL,无比简单的调用方式(2025-11-14 22:46)
【系统环境|】Kotlin语言特性: 实现扩展函数与DSL(2025-11-14 22:45)
【系统环境|】kotlin Gradle DSL实战——重构Gradle脚本(2025-11-14 22:45)
手机二维码手机访问领取大礼包
返回顶部