本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描
本机测试环境:Win10-X64,.vs2017
依赖包:
1.SDK Java的东东
2.sonarqube 静态代码检查工具,B/S
3.sonar-scanner-msbuild 真正的代码扫面工具
Soanr的代码检测的实现机制,就是通过客户端的工具对代码进行扫描,然后发送到 sonarqube,然后进行结果报告查看
开始安装:
1.首先安装SDK,安装完成之后,配置相应的path环境变量,打开cmd输入java,如下图代表安装成功:
2.安装Sonar
下载Sonar ,下载地址 :https://www.sonarqube.org/downloads/
解压下载包之后,执行 bin\windows-x86-64\StartSonar.bat
如上图,代表启动成功,浏览器输入:http://localhost:9000/ 即可访问,已经默认内置了管理员账号:admin / admin
3.配置中文包
如何打开配置中文包呢?
安装之后需要重启才能生效
如何强制停止sonar服务呢? 打开任务管理器,关闭 Java进程
4.安装包 sonar-scanner-msbuilld
canner包就是真正进行代码扫面的工具包
https://github.com/SonarSource-VisualStudio/sonar-scanner-msbuild/releases/download/2.2/sonar-scanner-msbuild-2.2.0.24.zip
下载后解压至任意目录即可,这里直接放到了c:\sonar
开始使用
1.新建项目
填写项目的关键信息即可,选择项目开发语言
2.扫描项目三部曲
这里的三步曲就是sonar新建项目中的最后步骤的扫描教程,分为三步
1.配置环境变量,也就是下载的Sonar-Canner-Msbuild 中 SonarScanner.MSBuild.exe的位置
2.进行项目解决方案所在的目录,也就是 sln 文件所在目录,打开cmd命令 执行如下命令,下面的命令是根据创建项目时生成的需要复制出来
a.SonarScanner.MSBuild.exe begin /k:"Mytest" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b"
b.MsBuild.exe /t:Rebuild
c.SonarScanner.MSBuild.exe end /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b"
执行效果如下:
如果MsBuild.exe /t:Rebuild 报错,需要解决项目中的问题,这是编译报错,下图为编译成功,且报告已经上传到SonarQube ,可以到 http://localhost:9000 查看具体报告
3.查看项目扫描报告
查看报告
这里提供一个批处理,配合上述的放入c:\sonar,使用如下命令即可一部完成代码分析并上报, 新建sonar.bat文件,copy如下命令,将soanr.bat放入项目sln目录中,双击运行即可
echo off
c:\sonar\SonarScanner.MSBuild.exe begin /k:"项目名称需要替换" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="项目Key,创建项目时生成,需要复制"
::编译代码
set "msbuildPath="
set "msbuildPath14=%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
set "msbuildPath15=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe"
if exist "%msbuildPath14%" set "msbuildPath=%msbuildPath14%"
if exist "%msbuildPath15%" set "msbuildPath=%msbuildPath15%"
if "%msbuildPath%" == "" goto nomsbuild
"%msbuildPath%" /t:Rebuild
c:\sonar\SonarScanner.MSBuild.exe end /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b"
echo 扫描完成
pause
:nomsbuild
echo 没有找到MSBUILD
pause
:exit
【文章原创作者:高防ip http://www.558idc.com/gfip.html欢迎留下您的宝贵建议】