• 【Sonar】静态扫描实践


    sonarqube静态代码扫描

    环境配置

    指导

    sonarqube安装包:9.4

    配置:https://blog.csdn.net/weixin_42182599/article/details/120037626

    直接下载安装包:https://www.sonarqube.org/downloads/

    7.8.9以下才支持mysql,jdk8

    8+不支持mysql,需要jdk11+

    SonarQube遇到的启动问题及解决方案:

    问题原因:不能够使用root用户进行启动

    解决方案:①创建一个其他用户(如sonar) adduser sonar 设置密码 passwd sonar

                  ②更改sonarqube的安装目录的用户组   chown -R sonar:sonar sonarqube-XXX

                ③切换用户启动 su sonar             xxxx/sonar.sh start

    汉化:https://blog.csdn.net/liumiaocn/article/details/103043922

    启动:需要到sonar用户下执行

    cd /Users/xingxiang.ding/sonarqube/bin/macosx-universal-64

    ./sonar.sh start

    启动成功后:http://127.0.0.1:9000/ admin/admin1234

    /Users/xingxiang.ding/sonarqube/conf/sonar.properties 配置

    #PostgreSQL
    sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar?currentSchema=public
    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    sonar.sorceEncoding=UTF-8
    sonar.login=admin
    sonar.password=admin1234
    sonar.web.host=127.0.0.1
    sonar.web.port=9000

    #plugins
    sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.11.0.jar=web
    sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.11.0.jar=ce

    多分支插件:https://www.jianshu.com/p/a35cae2a3894

    https://github.com/mc1arke/sonarqube-community-branch-plugin

    sonar-scanner安装包:4.7

    brew install sonar-scanner

    /usr/local/Cellar/sonar-scanner

    /usr/local/Cellar/sonar-scanner/4.7.0.2747/libexec/conf/sonar-scanner.properties

    sonar.host.url=http://localhost:9000
    sonar.login=admin
    sonar.password=admin1234

    https://blog.csdn.net/weixin_44410537/article/details/113770515

    工程配置

     

    java配置:11

    brew install java11

    配置环境变量:/usr/local/Cellar/openjdk@11/11.0.14.1/bin/java

    修改sonarqube java启动版本:/Users/xingxiang.ding/sonarqube/conf/wrapper.conf

    wrapper.java.command=/usr/local/Cellar/openjdk@11/11.0.14.1/bin/java

    查看当前:/usr/libexec/java_home -V

    /usr/local/Cellar/openjdk@11/11.0.14.1/bin

    PostgreSQL:14

    /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

    /usr/local/Cellar/sonar-scanner/4.7.0.2747/libexec/conf/sonar-scanner.properties

    下载版本:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

    PostgreSQL安装目录:/Library/PostgreSQL/14 port:5432

    用户名/密码:postgres /root

    sonar/sonar

    brew services restart mysql

     

    web

    创建一个令牌

    parcel-service: 17f25400523ec7626c83abe7329a2b25bdce139e

    sonar-scanner \
    -Dsonar.projectKey=parcel-service \
    -Dsonar.projectName=parcel-service\
    -Dsonar.sources=/Users/xingxiang.ding/go/src/parcel-service/lib/spex/request.go,/Users/xingxiang.ding/go/src/parcel-service/lib/monitoring/init.go \
    -Dsonar.host.url=http://127.0.0.1:9000 \
    -Dsonar.login=17f25400523ec7626c83abe7329a2b25bdce139e\
    -Dsonar.branch.name=test \
    -Dsonar.language=go \
    sonar.projectKey=parcel-service
    sonar.projectName=parcel-service
    sonar.version=1.0
    sonar.sources=.
    #sonar.binaries=bin
    sonar.language=go
    sonar.sourceEncoding=UTF-8
    sonar.branch.name=test
    sonar.login=17f25400523ec7626c83abe7329a2b25bdce139e

     

    ssc-mdata: 3b5fffb859901584a7faddb964784db42277ce49

    sonar-scanner \
    -Dsonar.projectKey=ssc-mdata \
    -Dsonar.projectName=ssc-mdata\
    -Dsonar.sources=. \
    -Dsonar.host.url=http://127.0.0.1:9000 \
    -Dsonar.login=3b5fffb859901584a7faddb964784db42277ce49\
    -Dsonar.branch.name=feature/SPOMS-15187-sbs-settings-migration \
    -Dsonar.language=go \
    -Dsonar.exclusions=**/*.pb.go \
    -Dsonar.test=. \
    -Dsonar.test.inclusions=**/*_test.go
     

    工程文件

    sonar.projectKey=ssc-mdata
    sonar.projectName=ssc-mdata
    sonar.version=1.0
    sonar.sources=.
    #sonar.binaries=bin
    sonar.language=go
    sonar.sourceEncoding=UTF-8

    troubleless: 029b214da535d24563910b49cd80871470f9e59e

    sonar-scanner \
    -Dsonar.projectKey=troubleless \
    -Dsonar.projectName=troubleless\
    -Dsonar.sources=. \
    -Dsonar.host.url=http://127.0.0.1:9000 \
    -Dsonar.login=029b214da535d24563910b49cd80871470f9e59e\
    -Dsonar.branch.name=test \
    -Dsonar.language=go
    -Dsonar.exclusions=**/*.pb.go

    golint

    配置

    cd $GOPATH/src
    git clone https://github.com/golang/lint.git
    cd ./lint/golint
    go build
    可以将其移动到 $GOPATH/bin 目录下面
    Arguments: $FilePath$
    Working directory: $ProjectFileDir$

    or:
    cd xx/xx #相应的项目目录
    golint xx/xx #指定目录扫描
    golint xx/xx > xx/xx #扫描指定目录,并将结果写入指定目录内

    image-20220420140220586

    image-20220420140249526

    image-20220420140314514

    golangci-lint

    官网手册

    golangci-lint安装

    简要手册

    /home/qa/nolintremoveinfiles.sh  /var/lib/jenkins/workspace/retail-sonar-scanner
    cp -rf /var/lib/jenkins/.golangci.yml /var/lib/jenkins/workspace/retail-sonar-scanner/
    #git branch -vv
    export GO111MODULE=off
    /var/lib/jenkins/go/bin/golangci-lint run --out-format checkstyle ./retail/... --timeout=10m \
    > /var/lib/jenkins/workspace/retail-sonar-scanner/report.xml
    whoami

    在IDE中接入

    IDE接入

    image-20220420143357027

    资料

    Golang代码检测

    Mac安装SonarQube教程

    https://zhuanlan.zhihu.com/p/375441803

     

    https://xingxiang.ding@git.garena.com/shopee/bg-logistics/OMS/ssc-mdata.git

     

    /Users/xingxiang.ding/go/src/parcel-service/app/api/api.go

    sonar.projectKey=parcel-service
    sonar.projectName=parcel-service
    sonar.version=${Version}
    sonar.sources=.
    #sonar.binaries=bin
    sonar.language=${Language}
    sonar.sourceEncoding=UTF-8
    sonar.branch.name=${Branch}
    sonar.login=${Token}
    sonar.exclusions=${Exclusions}
    sonar.tests=.
    sonar.test.inclusions=**/*_test.go
    sonar.go.golangci-lint.reportPaths=report.xml

    Jekins+gitlab

    oEmdX5TbLFjCCEMexBUV

     

    基于 GitLab**+SonarQube搭建自动化代码检测平台**

  • 相关阅读:
    【面向对象-天龙八部】
    【面向对象-作业】
    【OOP】面向对象的程序开发
    nmcli命令详解(创建热点,连接wifi,管理连接等)
    构造函数&&继承8.1
    Set集合之TreeSet类
    Set集合之HashSet类
    HDFS上传数据的流程
    zookeeper的安装与配置
    hive介绍、安装配置、表操作基础知识适合小白学习
  • 原文地址:https://www.cnblogs.com/gtea/p/16270104.html
Copyright © 2020-2023  润新知