【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搭建自动化代码检测平台**

posted @   gtea  阅读(450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示