Sonar Qube代码质量检测工具安装及基本使用

Sonar介绍

Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。

Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来

 

Sonar Qube安装

Sonar Qube在7.9版本中已经放弃了对MySQL的支持,并且建议在商业环境中采用PostgreSQL,那么安装Sonar Qube时需要依赖PostgreSQL。

并且这里会安装Sonar Qube的长期支持版本8.9

  • 拉取镜像

docker pull postgres
docker pull sonarqube:8.9.3-community

  • 编写docker-compoe.yml

version: "3.1"
services:
  db:
    image: postgres
    container_name: db
    ports:
      - 5432:5432
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
  sonarqube:
    image: sonarqube:8.9.3-community
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
networks:
  sonarnet:
    driver: bridge

  • 启动容器

docker-compose up -d

  • 需要设置sysctl.conf文件信息

上面直接启动会报如下错误:

 这里是由于vm.max_map_count的值太小导致,我们把值设置到262144就可以解决这个问题

设置vm.max_map_count

只需要将/etc/sysctl/sysctl.conf文件末尾添加上vm.max_map_count=262144就可以

 

  • 重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功

 

  • 访问Sonar Qube首页

 默认的账号和密码都是admin

  • 还需要重新设置一次密码 -- 重置密码admin1234

  • Sonar Qube首页

 

 Sonar Qube

Sonar Qube的使用方式有很多,可以通过maven整合,也可以采用sonar-scanner的方式,再查看sonar qube的检测效果

Maven实现代码检测

  • 修改Maven的settings.xml文件配置Sonar Qube信息


    sonar
   
        true
   

   
        admin
        123456789
        http://192.168.11.11:9000
   

  • 在代码位置执行命令:mvn sonar:sonar

[INFO] Analysis report uploaded in 106ms
[INFO] ANALYSIS SUCCESSFUL, you can browse http://192.168.19.7:9000/dashboard?id=com.example%3Acicd-demo
[INFO] Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
[INFO] More about the report processing at http://192.168.19.7:9000/api/ce/task?id=AYgpC9-83qMNjoncyTCO
[INFO] Analysis total time: 4.627 s
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.888 s
[INFO] Finished at: 2023-05-17T17:30:25+08:00
[INFO] ------------------------------------------------------------------------
 

从输出可以看出生成的检测报告在http://192.168.19.7:9000/dashboard?id=com.example%3Acicd-demo,打开这个地址可以看到最终结果

  • 查看Sonar Qube界面检测结果

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部