我正在尝试使用Teamcity为C#项目设置SonarQube。问题是没有C#文件被分析。
能否请您仔细检查我的配置并让我知道我是否有任何遗漏?我不知道为什么它不分析任何C#文件。
如果您需要任何其他信息,请告诉我,我将编辑问题。
答案 0 :(得分:1)
在其他参数中,尝试添加以下内容:
-Dsonar.lanauge=c#
如果它不起作用,请尝试使用命令行运行器代替TeamCity插件:
第1步:
下载并安装SonarQube MSBuild runner from here。
第2步:
在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。
第3步:
使用以下命令再次创建命令行构建步骤:
SonarQube.Scanner.MSBuild.exe end /d:"sonar.login=%sonar.login%"
这会将分析结果发送到SonarCube。
更新1:
如您所知,我使用了一些参数,例如sonar.login
等,请不要忘记将它们添加到TeamCity的Parameters中。
sonar.login
=>您的登录名
sonar.organization
=>组织
sonar.project
=>您在SonarQube中的项目
sonar.host.url
=> SonarCube的主机URL,例如:https://sonarcloud.io
答案 1 :(得分:0)
要分析Jenkins的C#代码,请遵循Analyzing with SonarQube Scanner for MSBuild文档页面Analyzing with SonarQube Scanner for Jenkins中的说明。
您需要使用MSBuild的SonarQube扫描仪来分析C#,因为该分析是在MSBuild步骤的一部分中完成的,并且只有SonarQube Scanner for MSBuild才能正确连接到MSBuild步骤-SonarQube扫描仪的其他版本没有
其他几点:
B&
属性仅在使用SonarCloud时才相关; SonarQube不使用它。sonar.organization
属性已deprecated-不提供。sonar.language
属性。扫描程序将基于生成的MSBuild项目中的文件自动设置属性。 用于MSBuild的SonarQube扫描仪自动设置sonar.sources
属性的一个缺点是,所有要分析的文件必须由MSBuild项目引用,即所有XML,JavaScript,CSS等文件。 / p>
如果MSBuild项目未引用那些其他文件类型,但您想对其进行分析,则可以将对这些文件的引用添加到MSBuild项目中,或者使用其他SonarQube扫描仪之一运行单独的分析(尽管如果您运行单独的分析,则需要提供其他sonar.sources
键,以使分析结果不会相互覆盖。