【Sonar】静态扫描实践
环境配置
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 #扫描指定目录,并将结果写入指定目录内
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中接入
资料
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!