如何配置TeamCity的SonarQube Runner以分析C#文件
我正在尝试使用Teamcity为一个C#项目设置SonarQube。问题是没有对C#文件进行分析 能否请您再次检查我的配置,并告诉我是否可能遗漏了任何内容?我完全不明白为什么它不分析任何C#文件如何配置TeamCity的SonarQube Runner以分析C#文件,c#,sonarqube,teamcity,C#,Sonarqube,Teamcity,我正在尝试使用Teamcity为一个C#项目设置SonarQube。问题是没有对C#文件进行分析 能否请您再次检查我的配置,并告诉我是否可能遗漏了任何内容?我完全不明白为什么它不分析任何C#文件 如果您需要任何其他信息,请告诉我,我将编辑问题。在其他参数中,尝试添加以下内容: -Dsonar.lanauge=c# 如果不起作用,请尝试使用命令行运行程序而不是TeamCity插件: 第1步: 下载并安装 第二步: 使用下面的命令在TeamCity的项目生成步骤中创建命令行运行程序,不要忘记
如果您需要任何其他信息,请告诉我,我将编辑问题。在其他参数中,尝试添加以下内容:
-Dsonar.lanauge=c#
如果不起作用,请尝试使用命令行运行程序而不是TeamCity插件:
第1步:
下载并安装
第二步:
使用下面的命令在TeamCity的项目生成步骤中创建命令行运行程序,不要忘记重新排序此项,使其在MSBuild之前运行
SonarQube.Scanner.MSBuild.exe begin /k:"%sonar.project%" /d:"sonar.host.url=%sonar.host.url%" /d:"sonar.login=%sonar.login%" /d:"sonar.organization=%sonar.organization%" /v:"%build.number%"
这使得SonarQubeRunner钩住MSBuild
第三步:
使用以下命令再次创建命令行生成步骤:
SonarQube.Scanner.MSBuild.exe end /d:"sonar.login=%sonar.login%"
这将把分析发送到SonarCube
更新1:
正如您所知,我使用了几个参数,如sonar.login
等,不要忘记在TeamCity的参数中添加它们
sonar.login
=>您的登录名
声纳组织
=>组织
sonar.project
=>您在SonarQube中的项目
sonar.host.url
=>SonarCube的主机url例如:要分析来自Jenkins的C代码,请按照文档页面中的说明进行操作
您需要使用用于MSBuild的SonarQube扫描仪来分析C#,因为分析是作为MSBuild步骤的一部分完成的,并且只有用于MSBuild的SonarQube扫描仪正确地挂接到MSBuild步骤-其他版本的SonarQube扫描仪不会
还有几点:
- 只有在使用SonarCloud时,
属性才相关;它不与SonarQube一起使用sonar.organization
属性自SonarQube 4.5以来一直存在-不提供该属性sonar.language
- 使用SonarQube扫描仪进行MSBuild时,不要设置
属性。扫描程序将根据生成的MSBuild项目中的文件自动设置属性李>sonar.sources
sonar.sources
属性的一个缺点是,所有要分析的文件都必须由MSBuild项目引用,即所有XML、JavaScript、CSS等文件
如果MSBuild项目未引用这些其他文件类型,但希望对其进行分析,则可以将对这些文件的引用添加到MSBuild项目,或者改用其他SonarQube扫描程序之一运行单独的分析(虽然如果运行单独的分析,则需要提供不同的
sonar.project
键,以便分析结果不会相互覆盖).Hi@ali bahrami,看来从命令行运行声纳扫描仪是一条可行之路。-Dsonar.lanauge=c#对我不起作用。谢谢你的时间和回答,这真的帮了我很多忙。@Marcel Hier-Hi,欢迎你。我个人更喜欢运行Runner而不是插件。即使我在xunit插件TeamCity,但是跑步者工作得很好。我很高兴你的问题解决了。