使用SonarQube对Unity项目进行代码分析的问题记录
1.这里不仔细描述每个步骤,只记录一些关键问题,到官网下载解压最新版的SonarQube(我用的是8.9.1)。
2.下载安装jdk,这里要注意官网的说明,我一开始下的jdk16,启动Sonar后报错,后来换成jdk11可以了。
3.下载安装数据库,注意7.9.1以后不支持mysql了,我使用的是postgresql,安装过程参考:https://www.runoob.com/postgresql/windows-install-postgresql.html,https://www.cnblogs.com/Simple-Small/p/12882948.html,这两篇文章足矣。
4.启动Sonar后,可以进入http://localhost:9000/了,但是提示要手动升级数据库,不明所以,按这个帖子处理,https://stackoverflow.com/questions/50694564,终于进入了主界面。
5.要分析C#,得到 https://github.com/SonarSource/sonar-scanner-msbuild/releases/ 下载sonar-scanner-msbuild ,然后具体步骤参考https://www.cnblogs.com/jinjiangongzuoshi/p/11648785.html这篇文章足矣。
6.配置MSBuild的环境变量,这一步我也是网上百度的,我一开始设置的是C:\Windows\Microsoft.NET\Framework64\v4.0.30319,但是编译工程的时候会报错,提示Sonar所依赖的一个dll版本不对,后来改成我平常用的VS2017地址C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin,就可以了。
7.打开cmd,切换到项目根目录,
先输入命令
SonarScanner.MSBuild.exe begin /k:"projectName" //这一步,是预处理,完了会提示成功,这里projectName是Sonar分析项目的的名字,自己随便起一个。
成功后再输入命令
MSBuild.exe D:\xx\xxx\xxxx.sln /t:Rebuild //这一步,指定具体的.sln解决方案,然后编译一遍,第六步中遇到的报错,就是在这里出现的。
成功编译后,再输入命令
SonarScanner.MSBuild.exe end //这一步,分析C#扫描结果,并将分析报告上传给SonarQube
这里也成功之后,再次来到http://localhost:9000/,点击最上面菜单栏的Projects,会发现多了一个项目,就可以查看结果了。
还没解决的问题:
其实,官方给出的顺序是,先在http://localhost:9000/建立一个项目,然后生成一个token,执行第一个和第二个命令行的时候,加上参数/d:sonar.login="85bd04a5225cf18e5b92a2bc34f7603c1731d8f9"
但是,我按这个方法,在预处理的时候就报错,The token you provided doesn't have sufficient rights to check license,所以后来就没加这个参数,也还能用,就没解决这个问题。