【问题标题】:FxCop analysis using Jenkins SonarQube plugin?使用 Jenkins SonarQube 插件进行 FxCop 分析?
【发布时间】:2016-01-27 05:22:30
【问题描述】:

我正在尝试对 Jenkins 构建中的 .NET 项目进行 FxCop 分析(Invoke Standalone SonarQube Analysis)。

配置如下:

  • SonarQube 5.1.2
  • C# 4.2
  • 声纳转轮 2.4
  • Jenkins:SonarQube 插件 2.2.1

主要问题是当我在 SonarQube 中启用 FxCop 规则时,我收到错误:

java.lang.IllegalArgumentException:属性 “sonar.cs.fxcop.assembly”必须设置并且项目必须已经 为执行 FxCop 规则而构建。该属性可以自动设置 通过 Visual Studio Projects 插件的分析引导程序,请参阅: http://docs.codehaus.org/x/TAA1Dg.If你想跳过分析 未建项目,设置属性 “sonar.visualstudio.skipIfNotBuilt”。

但是,如果我在 sonar-project.properties 中明确设置 sonar.cs.fxcop.assembly指向一个程序集 (.dll) 我得到了该程序集的分析,但是该项目有多个程序集,我希望对其进行 FxCop 分析。 即使可以将程序集列表设置为参数(是吗?)这不是一个优雅/通用的解决方案,模式也不是一个可接受的值。

我知道 MSBuild SonarQube Runner 可以解决这个问题(无需设置 sonar.cs.fxcop.assembly),但它看起来不是 Jenkins 插件的好选择(在 SonarQube 下) Runner 安装),因为只允许安装 sonar-runner

有没有什么方法可以让 FxCop 在不设置 sonar.cs.fxcop.assembly 属性的情况下使用 Jenkins 插件和 sonar-runner 工作?

【问题讨论】:

  • 你对问题的描述是中肯的,但是你可以通过展示你正在使用的代码来改进它。

标签: sonarqube jenkins-plugins sonar-runner


【解决方案1】:

确实,MSBuild 项目应该使用 MSBuild SonarQube Runner 进行分析,目前 Jenkins 中还没有专门的构建步骤:您可以使用 Execute Windows batch command 步骤在调用之间执行 MSBuild.SonarQube.Runner.exe begin ...MSBuild.SonarQube.Runner.exe end到 msbuild。

随着即将发布的 Jenkins SonarQube 插件版本 2.3,将有两个专用的构建步骤,一个用于 MSBuild SonarQube Runner 的开始调用,另一个用于结束调用。见https://jira.sonarsource.com/browse/SONARJNKNS-219

您应该使用 sonar-runner,也不应该使用 Invoke Standalone SonarQube Analysis Jenkins 构建步骤(它只是调用 sonar-runner)来分析 .NET 项目:MSBuild SonarQube Runner 是去吧。

【讨论】:

  • 感谢 Dinesh 为 Jenkins 插件提供了一些启示。
猜你喜欢
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2018-02-16
  • 2013-09-13
  • 2016-12-12
  • 2017-10-17
相关资源
最近更新 更多