首页 > 其他分享 >看这里,全网最详细的Sonar代码扫描平台搭建教程

看这里,全网最详细的Sonar代码扫描平台搭建教程

时间:2022-09-26 11:11:24浏览次数:55  
标签:INFO 教程 sonarqube 代码 全网 插件 sonarlint sonar Sonar

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:magetest

码同学抖音号:小码哥聊软件测试



01Sonar安装

官网:https://www.sonarqube.org/

1.sonar简介

sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告

sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划分为5个等级;

同时,sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量。

 

2.sonar组成

一个sonar项目主要有以下四个组件构成:

 

 

  • 一台SonarQube Server启动3个主要过程:

    • Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例

    • 基于Elasticsearch的Search Server从UI进行后退搜索

    • Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中

       

  • 一个SonarQube数据库要存储:

    • SonarQube实例的配置(安全性,插件设置等)

    • 项目,视图等的质量快照

       

  • 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件。

  • 在构建/持续集成服务器上运行一个或多个SonarScanner,以分析项目。

3.sonarquebe安装

1.jdk下载

sonar7.9.6需要jdk11以上版本,因此我们采用jdk11,下载后上传服务器

2.安装postgresql数据库

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql13-server
/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl enable postgresql-13
systemctl start postgresql-13

创建数据库

#先切换到postgres用户
su - postgres
# 执行创建指令
psql
create user sonarqube with password 'sonarqube';
create database sonarqube owner sonarqube;
grant all  on database sonarqube to sonarqube;
\q
su -

3.下载sonar社区版

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.6.zip,下载后上传服务器

unzip sonarqube-9.0.0.45539.zip

进入sonar的conf目录,编辑wrapper.conf,配置java

 

 

配置数据库信息:

进入sonar的conf目录,编辑sonar.properties,配置数据库

 

 

 

 

4.启动sonar

启动前先创建sonar用户组,sonar不能采用root用户直接启动

创建用户组: groupadd sonar
创建用户: useradd sonar -g sonar
修改sonar目录为sonar用户的: chown -R sonar:sonar sonarqube-7.9.6.zip

切换用户sonar

su - sonar

启动sonar,先进入到sonar的bin目录下的linux-x86-64目录

启动命令: ./sonar.sh start
查看启动日志: tail -f ../../logs/sonar.log

可能会遇到的问题:

 

 

针对以上问题做如下操作:

修改/etc/sysctl.conf文件,文件末尾追加vm.max_map_count=262144

修改/etc/security/limits.conf文件,文件末尾追加

* soft nproc 4096
* hard nproc 4096* soft nofile 1000000* hard nofile 1000000

然后重启虚拟机,再次启动sonar

浏览器访问:http://你的服务器ip:9000

登录用户admin   密码admin

5.sonar中文插件安装

 

 

重启sonar。



02Sonar代码扫描配置

1.扫描器配置

  • 下载扫描器

    这个扫描器可以用于java、js、python、php

    https://docs.sonarqube.org/7.9/analysis/scan/sonarscanner/

  • 配置环境变量

     

     

  • 将bin目录所在的路径添加到环境变量PATH中

2.sonar项目配置(java)

    • 创建项目

      • 在sonar平台中创建项目,点击右上角的+号

         

         

      • 输入项目基本信息

         

         

      • 创建令牌

         

         

      • 点击继续,选择java及其他选项

 

 

    • 提交代码进行分析

    • 免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest

    • 进入自己的java项目代码所在目录执行上一步复制的指令,下方命令不要复制我的,复制你自己页面上的,要记住这个

      mvn sonar:sonar -Dsonar.projectKey=testjava -Dsonar.host.url=http://192.168.1.9:9000 -Dsonar.login=6d7e7673d49b6af7215ebb3e6a1b0b2979e456af

      提交成功后,在sonar页面上可以看到如下分析结果

       

       

    • idea插件安装

      1.打开File—>Settings—>Plugins,进入插件界面,搜索sonarlint

       

       

      2.设置sonarlint

      • 在File--->Settings中搜索sonar,进入sonarlint设置界面

         

         

      • 点击+号,输入sonar服务地址

         

         

      • 输入token

         

         

      • 点击Finish完成以后的界面如下

         

         

      • 设置sonar项目

         

         

3.idea上的sonarlint扫描

 

 

3.sonar项目配置(python)

创建项目

  • 在sonar平台中创建项目,点击右上角的+号

     

     

  • 输入项目基本信息

     

     

  • 创建令牌

     

     

  • 点击继续,选择语言等

     

     

 

提交代码进行分析

进入自己的python项目代码所在目录执行上一步复制的指令,下方命令不要复制我的,复制你自己页面上的,要记住这个

sonar-scanner.bat -D"sonar.projectKey=testpython" -D"sonar.sources=." -D"sonar.host.url=http://192.168.2.194:9000" -D"sonar.login=023a9d3f793bbdd4c6d13560d65d8af58a4d4999"

提交成功日志节选如下:

  • INFO: 7 files had no CPD blocks

  • INFO: Calculating CPD for 11 files

  • INFO: CPD calculation finished

  • INFO: Analysis report generated in 139ms, dir size=116 KB

  • INFO: Analysis report compressed in 355ms, zip size=49 KB

  • INFO: Analysis report uploaded in 42ms

  • INFO: ANALYSIS SUCCESSFUL, you can browse http://192.168.2.194:9000/dashboard?id=testpython

  • INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis repor t

  • INFO: More about the report processing at http://192.168.2.194:9000/api/ce/task?id=AXqKTkkD4VBbIALCoOM9

  • INFO: Analysis total time: 23.357 s

  • INFO: ------------------------------------------------------------------

  • INFO: EXECUTION SUCCESS

  • INFO: ------------------------------------------------------------------

  • INFO: Total time: 24.997s

  • INFO: Final Memory: 13M/54M

  • INFO: ------------------------------------------------------------------

成功以后在sonar项目中查看,当然这个项目的问题不多,代码重复度较高。

pycharm插件安装

1.打开File—>Settings—>Plugins,进入插件界面,搜索sonarlint

 

 

2.设置sonarlint

    • 在File--->Settings中搜索sonar,进入sonarlint设置界面

       

       

    • 点击+号后输入sonar服务地址

       

       

    • 输入token

       

       

    • 再点击Finish,完成添加后的界面

       

       

    • 设置sonarlint的项目

       

       

  1. pycharm上sonar扫描

 

 

 

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:INFO,教程,sonarqube,代码,全网,插件,sonarlint,sonar,Sonar
From: https://www.cnblogs.com/testfan2019/p/16730187.html

相关文章

  • OpenCV CMake windows下 C++ OpenCV配置及x86编译(傻瓜式教程)
    本傻瓜教程需要的环境如下:IDE:vs2015或vs2017, windows10或11关于vs的版本,个人觉得不管是社区版个人版还是企业版,对于我们工作学习的个人来说都一样,......
  • C# 教程汇总
    更新记录转载请注明出处。2022年9月26日发布。2022年9月23日汇总所有内容。2022年9月10日从笔记迁移到博客。章节链接C#介绍(IntroducingC#)https://......
  • docker实战教程(十):本地镜像发布到私有库
    背景官方dockerhub地址:https://hub.docker.com,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司......
  • Jackson 解析 JSON 详细教程
    点赞再看,动力无限。微信搜「程序猿阿朗」。本文Github.com/niumoo/Java…和未读代码博客已经收录,有很多知识点和系列文章。JSON对于开发者并不陌生,如今的WEB......
  • 【可视化大屏教程】用Python开发智慧城市数据分析大屏!
    目录一、开发背景二、讲解代码2.1大标题+背景图2.2各区县交通事故统计图-系列柱形图2.3图书馆建设率-水球图2.4当年城市空气质量aqi指数-面积图2.5近7年人均生产总值......
  • MySQL数据库安装保姆级教程及1045错误和2058问题解决
    使用Mysql的zip压缩包解压版,下载之后需进行一定的配置,才能使用它。下面对Mysql压缩包版的安装方法进行详细的描述,如有疑问或错误,望及时反馈。首先,mysql的官方下载地址......
  • docker实战教程(九):本地镜像发布到阿里云
    流程构建镜像的两种方式:commit、dockerfilebuild推送到远程的两种方式:阿里云、私有库步骤选择控制台,进入容器镜像服务,创建个人版实例创建命名空间创建......
  • docker实战教程(八):commit命令
    dockercommitdockercommit提交容器副本使之成为一个新的镜像dockercommit-m="提交的描述信息"-a="作者"容器ID要创建的目标镜像名:[标签名]演示ubuntu安装vim......
  • PS新手教程-如何使用ps将图片制成乐高像素拼图
    如何使用ps将图片制成乐高像素拼图?给大家介绍如何使用ps将图片制成乐高像素拼图,一起来看看吧。PS新手教程-如何使用ps将图片制成乐高像素拼图图片制成乐高像素拼图效果如......
  • C#教程 - 其他(Other)
    更新记录转载请注明出处:2022年9月25日发布。2022年9月10日从笔记迁移到博客。==和Equals()区别如果是引用类型,==运算符比较的是引用的对象是否指向同一个内存区......