参考文档:使用SonarQube对Unity项目进行代码分析的问题记录 - zerozabuu - 博客园

一文搞定 SonarQube 接入 C#(.NET) 代码质量分析 - 狂师 - 博客园

需要分析的代码是unity下的C# 代码,配置流程主要参考上面两个文档,但还是遇到不少坑。

1、官网下载解压最新版的SonarQube(我用的是8.9.1)。

2、下载安装jdk并配置环境变量,这里我原来用的是jdk16,但是报错,换成了jdk11。

3、数据库配置,我也用的postgresql。

4、启动sonar服务。

双击startsonar

运行成功如图

此时打开 http://localhost:9000/ ,可以进入sonarqube网站,默认账号密码都是admin,

登录后会提示修改一下密码,这个密码要记住,后面会用到。

5、下载 sonar-scanner-msbuild

要分析C# 代码,需要下载 sonar-scanner-msbuild并配置环境变量。

我本来也下载的sonar-scanner-msbuild-4.3.1.1372-net466这个版本,但是后续出错了,提交报告的时候,提示只支持Msbuild14和15,又重新下载了最新的版本sonar-scanner-msbuild,需要配置到path路径。

6、MSBuild安装和配置。

需要用到Msbuild,这个是Visual studio带的工具,有下载了下VS2019,找到Msbuild的路径

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin

,添加到环境变量path中。

7、运行预处理编译和提交报告命令。

切换到项目根目录,运行cmd。

1)用命令SonarScanner.MSBuild.exe begin /k:"xxxxxx项目名" /n:"项目名" /v:"1.0"    进行预处理。

执行后会生成一个.sonarqube文件

2)用命令MSBuild.exe xxxx.sln /t:Rebuild 对解决方案进行编译。

提示0个错误,这样是编译通过。

执行后会生成一个obj文件

3)SonarScanner.MSBuild.exe end 命令,将分析结果上传到sonarqube。

成功结果如图。

在sonarqube可以看到上传的项目报告。

遇到的坑:

1)执行 SonarScanner.MSBuild.exe提示远程服务器返回错误:(401)未经授权。

解决方案:找同事复制了一份sonarQube.analysis文件,可能我原来的文件改错了。

登录sonarqube的账号密码要配置好。

2、 用VS2019带的MSbuild编译通过,但是生成报告的时候报错。

SonarScanner.MSBuild.exe end
SonarScanner for MSBuild 4.3.1
Using the .NET Framework version of the Scanner for MSBuild
Default properties file was found at E:\Software\sonar-scanner-msbuild-4.3.1.1372-net46\SonarQube.Analysis.xml
Loading analysis properties from E:\Software\sonar-scanner-msbuild-4.3.1.1372-net46\SonarQube.Analysis.xml
Post-processing started.
The SonarQube MSBuild integration failed: SonarQube was unable to collect the required information about your projects.
Possible causes:
  1. The project has not been built - the project must be built in between the begin and end steps
  2. An unsupported version of MSBuild has been used to build the project. Currently MSBuild 14.0 and 15.0 are supported
  3. The begin, build and end steps have not all been launched from the same folder
  4. None of the analyzed projects have a valid ProjectGuid and you have not used a solution (.sln)
Generation of the sonar-properties file failed. Unable to complete SonarQube analysis.
15:17:57.51  Creating a summary markdown file...
15:17:57.512  Post-processing failed. Exit code: 1

原因是VS2019自带的MSBuild为16版本,而用的sonarscanner for msbuild 4.3.1只支持msbuild14或者15。

所以换了msbuild14编译,又提示编译不通过。

报错信息为:CSC : error CS1617: Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to 6.

原因是代码用了新的语言,而MSbuild14不支持,所以还是要用msbuild16。

解决方案:重新下载最新版本的sonarscanner for msbuild(用的是5.3.1)

又操作预处理,编译,上传报告成功。

3、关闭sonar服务,不仅需要关闭sonar的命令行窗口,还要在任务管理器,结束掉所有的java任务。

如果不关闭java服务,再启动sonar,会提示被占用。

sonar 配置sonarqube分析unity中的C# 代码相关推荐

  1. 【专栏精选】Unity中的HTTP网络通信

    本文节选自洪流学堂公众号技术专栏<大话Unity2019>,未经允许不可转载. 洪流学堂公众号回复专栏,查看更多专栏文章. 洪流学堂,让你快人几步.你好,我是郑洪智. 大智:"小 ...

  2. 在Unity中使用四叉树算法绘制地形

    四叉树算法在游戏中获得了广泛的应用,前几年3D引擎实现的地形绘制大部分都是用四叉树生成的,因为移动端在硬件方面的限制,我们的地形使用的是美术自己制作的地形,对于程序来说省去了不少工作量,但是作为程序开 ...

  3. unity中实现城市夜晚汽车流水的效果

    这里着重说明unity中怎么用代码控制纹理的偏移和平铺:偏移的纹理可以实现很多流动的效果,如本例中的车流水线--: using System.Collections; using System.Col ...

  4. unity重定向_动画重定向技术分析和Unity中的应用

    0. 前言 新的手游项目使用Unity引擎,动画部分要使用重定向技术来实现动画复用.之前在大公司工作的时候对这块了解比较深入,读过Havok引擎在这部分的实现源码,也基于自己的理解在公司自研的手游引擎 ...

  5. unity重定向_动画重定向技术分析及其在Unity中的应用

    前言 笔者新的手游项目使用Unity引擎,动画部分要使用重定向技术来实现动画复用.笔者之前在大公司工作的时候对这块了解比较深入,读过Havok引擎在这部分的实现源码,并基于自己的理解,在公司自研的手游 ...

  6. Unity中Web.Config文件的配置与调用

    在上一篇文章"Unit简单依赖注入"我们可以实现构造对象和被依赖对象之间的 松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即 ...

  7. Unity中基于Gpu Instance进行大量物体渲染的实现与分析(一)

    图  一个使用gpu instance绘制4000棵树的场景 在3D渲染中,尤其是现代3D游戏中,我希望能够绘制越来越多的场景物体,这对于设备(尤其是移动端)的性能是个极大的考验,对于新一代的渲染ap ...

  8. sonar检测java vue项目_Jenkins集成SonarQube 实现构建项目同时审查代码

    软件版本: SonarQube:7.7 Jenkins:2.164.3 一.简介 SonarQube是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题.同时,它提 ...

  9. ios开发中计算代码运算时间_理解Unity中的优化(二):内存

    内存: 内存消耗是一个关键的性能指标,尤其是在内存资源有限的平台上,比如低端移动设备. 内存消耗分析: 在Unity中诊断内存问题,Unity介绍了一款开元的可视化内存分析工具--MemoryProf ...

最新文章

  1. c 在realse下为什么生成不了exe_exe文件?你也可以编写!
  2. 北师计算机应用基础离线作业2,[北京师范大学]18秋《计算机应用基础(专科)》 离线作业2...
  3. Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
  4. python怎么调用局部变量_python基础:局部变量--全局变量的使用
  5. OpenStack Nova计算服务管理(四)
  6. 如何用Pygame写游戏(七)
  7. 前格式 直接将转换为当_如何将word转化为PDF格式?1分钟学会文档转换
  8. Bellman-ford算法、SPFA算法、SPFA判断负环(附例题)
  9. 个人记账系统c语言,C#实现_______个人记账程序
  10. IDEA中解决Spring 配置文件未受管束问题,提示:Unmapped Spring configuration files found
  11. NPN PNP 的区别
  12. 计算机语言栏在哪里,电脑里的输入法不见了,去哪儿找
  13. Redis原理浅析(一):Redis基本数据类型、事务以及排序
  14. heka 0.11.0源码分析--Elasticsearch OutPut插件
  15. [Kerberos基础]-- kerberos认证原理---讲的非常细致,易懂
  16. opencv在图片上添加文字
  17. Costco已来华,会员制电商是否迎来爆发增长期?
  18. TransDecoder识别转录本中编码区并预测蛋白
  19. 修改 Windows 7 / XP 双系统启动菜单名称
  20. 100种思维模型之风险概率思维模型-021

热门文章

  1. ASP.net报错汇总: This application is currently offline.
  2. ubuntu上安装python3.7教程_ubuntu中安装Python3.7
  3. 在python中类型属于对象变量是没有类型的_如何理解python对象有类型,变量无类型...
  4. Android5手动root,魅蓝Note5如何获取ROOT权限?魅蓝Note5 ROOT教程(亲测可行)
  5. html 按键hover,按钮hover效果
  6. oracle 数组的用法,Oracle数组用法
  7. 计算机英语900句.pdf,计算机英语900句第一章第一课:概貌
  8. #题目:GCD XOR UVA - 12716
  9. SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
  10. Difference between Win-builds vs MinGW-builds