欢迎光临
我们一直在努力

SonarScanner——Android 项目代码扫描核心集成工具

目录

  • 下载、安装
    • 进入 sdkmanager 所在目录
    • 安装构建所需的最小组件
    • 执行命令
  • 配置

将 Sonar(SonarQube/SonarScanner)集成到 Android 项目中进行代码扫描,是提升安卓工程代码质量的核心手段。 SonarScanner 作为客户端扫描工具,主要负责解析 Android 项目的代码文件、检测代码质量问题,并将完整的扫描结果上报至 SonarQube 服务器,是安卓项目接入 Sonar 扫描的核心工具。

下载、安装

① 下载「命令行工具」而非 Android Studio 访问官方页面: developer.android.com/studio → Command line tools only 选择与你系统匹配的压缩包(Windows/Mac/Linux),大小约 100 MB。

② 解压到任意目录,记住路径 例如:D:\\android-sdk\\cmdline-tools 把 cmdline-tools 文件夹重命名为 latest,最终层级: D:\\android-sdk\\cmdline-tools\\latest\\bin

③ 安装最小必要组件 打开终端,执行:

进入 sdkmanager 所在目录

cd D:\\android-sdk\\cmdline-tools\\latest\\bin

安装构建所需的最小组件

sdkmanager “platform-tools” “platforms;android-34” “build-tools;34.0.0”

执行命令

  • 在项目根目录下执行 .\\gradlew build
  • 再执行 sonar-scanner(可能失败可以多执行几次)
  • 配置

    在项目根目录下添加两个文件 sonar-project.properties(不提交 包含真实的sonar.host.url、sonar.login配置)、 sonar-project.properties.example(提交 的sonar.host.url、sonar.login配置)

    配置项核心作用关键特性
    sonar.projectKey SonarQube 中唯一标识项目的核心参数 1.全局唯一,不能与服务器上其他项目重复;2.建议用小写 + 短横线命名;3.一旦确定不建议修改,否则会丢失历史扫描数据 。
    sonar.projectName SonarQube 控制台展示的项目名称 1.仅用于可视化展示,支持中文 / 特殊字符;2.可以重复,不影响扫描逻辑;3.建议与项目实际名称一致。

    sonar-project.properties文件配置

    sonar.host.url=http://192.168.3.333:9000/
    sonar.login=squ_23hdnjdkd529dfg54dfg457dfg5dfg4fg50dfga

    # 项目基础信息
    sonar.projectKey=(项目唯一标识)
    sonar.projectName=(项目名称)
    sonar.projectVersion=1.0

    # 从根目录扫描
    sonar.sources=.

    # 排除所有构建产物 & 非源码
    sonar.exclusions=\\
    **/target/**,\\
    **/
    generatedsources/**,\\
    **/
    *.jar,\\
    **/testoutput/**,\\
    **/
    node_modules/**

    # Java 编译产物(允许通配)
    sonar.java.binaries=app/build/intermediates/javac/app_mainDebug/classes

    # Java 版本
    sonar.java.source=11

    # SCM(Git)
    sonar.scm.enabled=true

    ## sonar.scm.path=/usr/src/.git -Dsonar.scm.provider=git
    ## sonar.scanner.cache.enabled=true
    ## sonar.scanner.cache.dir=/opt/sonar-scanner/.sonar/cache
    ## sonar.scanner.parallel=true
    ## sonar.scanner.parallel.threads=4

    sonar-project.properties.example

    sonar.host.url=http://192.168.3.333:9000/
    sonar.login=xxxxxxxx

    # 项目基础信息
    sonar.projectKey=Demoproject
    sonar.projectName=Demoproject
    sonar.projectVersion=1.0

    # 从根目录扫描
    sonar.sources=.

    # 排除所有构建产物 & 非源码
    sonar.exclusions=\\
    **/target/**,\\
    **/
    generatedsources/**,\\
    **/
    *.jar,\\
    **/testoutput/**,\\
    **/
    node_modules/**
    # Java 编译产物(允许通配)
    sonar.java.binaries=app/build/intermediates/javac/app_mainDebug/classes

    # Java 版本
    sonar.java.source=11

    # SCM(Git)
    sonar.scm.enabled=true

    ## sonar.scm.path=/usr/src/.git -Dsonar.scm.provider=git
    ## sonar.scanner.cache.enabled=true
    ## sonar.scanner.cache.dir=/opt/sonar-scanner/.sonar/cache
    ## sonar.scanner.parallel=true
    ## sonar.scanner.parallel.threads=4

    并在.gitignore中添加忽略配置

    sonarproject.properties

    这样就ok了。

    赞(0)
    未经允许不得转载:171主机测评 » SonarScanner——Android 项目代码扫描核心集成工具
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址