内核菜菜 2024-08-13 14:58 采纳率: 0%
浏览 13

Android静态代码检查

需实现的功能:通过gitlab-CI,在有merge_request触发提交代码的增量代码检查

场景:gitlab、gitlab-runner、sonarqube、sonar-scanner都已经部署好了,现在流水线正常触发

遇到的问题:目前主要是用于Android 源代码(c/cpp/java)检查,目前没有用repo管理,而是把所有代码都保存在一个git仓库下,导致该仓库源代码庞大,sonar检查时很吃内存且检查时间很慢

目前设置的只扫描部分目录(sonar.sorce属性下指定部分要扫描的文件夹路径,导致没加的那些文件夹下的代码无法做代码检查),有没有朋友有更好的方法可以解决上面的问题,同事扫描和分析速度又快??

  • 写回答

1条回答 默认 最新

  • sdgb329 2024-08-15 23:14
    关注

    1. 代码模块化和分层:尽量将庞大的代码库拆分成更小的模块或子项目,并分别放在不同的 Git 仓库中。这样可以在需要时单独对特定模块进行代码检查,减少每次检查的代码量。
    2. 优化 SonarQube 配置:仔细检查 SonarQube 的配置参数,例如调整内存分配、并发线程数等,以提高性能。
    3. 增量分析优化:确保 SonarQube 正确地利用 Git 的版本控制信息进行增量分析,只检查有更改的部分代码,而不是每次都全量扫描。
    4. 代码清理和重构:对代码进行清理和重构,去除不必要的代码和复杂的结构,有助于提高分析速度。
    5. 采用分布式扫描:如果可能,可以考虑使用分布式的 SonarQube 扫描架构,将扫描任务分配到多个节点上并行处理。
    6. 选择合适的扫描规则集:根据项目的特点和需求,选择合适的扫描规则集,避免不必要的规则导致的性能开销。
    7. 定期维护和更新 SonarQube 版本:新版本可能会带来性能改进和优化。
    8. 建立代码质量基准:先对部分关键代码或模块进行高质量的扫描和优化,作为后续代码的基准和参考,逐步提高整体代码质量。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月13日

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?