从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件
  • 首页
  • 运维
  • 持续代码质量管理-Sonar部署以及与jenkins搭配使用

持续代码质量管理-Sonar部署以及与jenkins搭配使用

发布:蔺要红05-08分类: 运维

sonarqube 安装
安装扫描器sonar-scanner
与 jenkins 配合
# 官网
https://www.sonarqube.org/downloads/
# 下载地址
https://mirrors.linyaohong.com/sonar/
# 注意事项:
sonarqube-7.9.3.zip  jdk版本大于 11   不支持mysql
sonarqube-6.7.7.zip  jdk版本1.8      支持mysql
#参考文章
https://www.unixhot.com/article/56
# 安装
cd /data/server
wget https://mirrors.linyaohong.com/sonar/sonarqube-6.7.7.zip
unzip  sonarqube-6.7.7.zip
ln -s /data/server/sonarqube-6.7.7 /data/sonarqube
cd /data/sonarqube/conf
# 配置文件(配置数据库和端口,提前准备好数据库账号密码)
[shop@shdevops conf]$ grep ^[a-Z] sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=s#GVccNlgZ
sonar.jdbc.url=jdbc:mysql://10.66.110.108:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.port=9005
# 启动
/data/server/sonarqube-6.7.7/bin/linux-x86-64/sonar.sh start
# 访问
http://xxxxxxxxx:9005/    admin   admin

# 安装完主程序以后首先安装中文插件 和需要扫描的代码插件:
# 中文插件
https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases
# 安装方法一,下载安装
cd /data/sonarqube/extensions/plugins
wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.19/sonar-l10n-zh-plugin-1.19.jar
安装方法二 如图安装插件



安装扫描器sonar-scanner(主要对源码进行扫描,并将结果保存到数据库以便用上面的sonarqube进行分析)

# 地址
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.3.0.2102-linux.zip

cd /data/server
wget https://mirrors.linyaohong.com/sonar/sonar-scanner-cli-4.3.0.2102-linux.zip
ln -s /data/server/sonar-scanner-4.3.0.2102-linux/ /data/sonar-scanner
cd /data/sonar-scanner/conf
# 配置文件/4.3版本不用配置数据库/其他版本不详
[shop@shdevops conf]$ grep ^[a-Z] sonar-scanner.properties
sonar.host.url=http://localhost:9005
sonar.sourceEncoding=UTF-8

# 扫描器-扫描代码示例
 cd /data/sonar-scanner/sonar-scanning-examples/sonarqube-scanner
# 在此目录下执行扫描命令
/data/sonar-scanner/bin/sonar-scanner

# 备注:之所以能扫描代码是因为目录下有一个sonar-project.properties 文件

# 配置文件说明示例
————————————————————————————————————————————————————————————————————————
sonar.projectKey=org.sonarqube:sonarqube-scanner
sonar.projectName=Example of SonarQube Scanner Usage
sonar.projectVersion=1.0

sonar.sources=src,copybooks

sonar.sourceEncoding=UTF-8

## Cobol Specific Properties

# comma-separated paths to directories with copybooks
sonar.cobol.copy.directories=copybooks
# comma-separated list of suffixes
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy



## Flex Specific Properties

# retrieve code coverage data from the Cobertura report
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml



# PL/I Specific Properties
sonar.pli.marginLeft=2
sonar.pli.marginRight=0
————————————————————————————————————————————————————————————————————————
# 工作中用过的配置文件
# cat sonar-project.properties
sonar.projectKey=sh_lp
sonar.projectName=sh_lp
sonar.projectVersion=2.0
sonar.sources=./src
#sonar.sources=src/app/Controllers
sonar.sourceEncoding=UTF-8
sonar.cobol.copy.directories=copybooks
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml
# PL/I Specific Properties
sonar.pli.marginLeft=2
sonar.pli.marginRight=0

# 来自网络未验证的 常用基础配置
sonar.projectKey=gpcore       #sonar平台中相对应项目的key
sonar.projectName=gpcore      #sonar平台中相对应项目的名字
sonar.sources=.               #sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录;包含主要源文件的目录的逗号分隔路径
sonar.exclusions=**/*_test.go,**/vendor/**      #检测中排除的源文件(排除的源文件不参与检测,一般排除单元测试文件、配置文件等)
sonar.tests=.                 #sonar检测的测试文件目录,‘.’表示当前根目录下的所有文件目录;包含测试源文件的目录的逗号分隔路径。从构建系统中读取Maven,Gradle,MSBuild项目。否则默认为空。
sonar.test.inclusions=**/**_test.go             #检测中的测试源文件(指定单元测试文件)
sonar.test.exclusions=**/vendor/**              #检测中排除的测试源文件(排除的源文件不参与检测)

# golang语言配置
sonar.go.coverage.reportPaths=report/coverage.out                  #go的覆盖率报告文件位置
sonar.go.tests.reportPaths=report/test.json                        #go的单元测试报告文件位置
sonar.go.govet.reportPaths=report/govet-report.out                 #go的源码中静态错误报告文件位置
sonar.go.gometalinter.reportPaths=report/gometalinter-report.out   #go的gometalinter代码规范报告文件位置
sonar.go.golint.reportPaths=report/golint-report.out               #go的golint代码规范报告文件位置

# js语言配置
sonar.javascript.lcov.reportPaths=coverage/lcov.info                #js的覆盖率报告文件位置

# nodejs语言配置
sonar.typecript.lcov.reportPaths=coverage/lcov.info                #js的覆盖率报告文件位置


访问 项目地址:http://xxx.xxx.36.159:9005/



与 jenkins 配合
 

SonarQube Scanner # 安装插件安装不上,多安装几遍


配置jenkins-01




配置jenkins-02



配置jenkins-03

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站