【问题标题】:Sonarqube StyleCop analysis for c# multi-module project using Maven aggregator from Jenkins使用来自 Jenkins 的 Maven 聚合器对 c# 多模块项目进行 Sonarqube StyleCop 分析
【发布时间】:2015-01-19 21:48:29
【问题描述】:

我有一个要在其上运行 SonarQube 分析的 C# 多模块项目。该项目是使用 Maven 通过聚合器 pom 文件构建的。声纳分析工作正常,找到模块并完成声纳分析。但是,我没有看到任何 StyleCop 违规行为。例如

[INFO] [14:41:01.053] Sensor org.sonar.plugins.stylecop.StyleCopSensor@1d5df31...
[INFO] [14:41:01.148] Microsoft (R) Build Engine version 4.0.30319.18408
[INFO] [14:41:01.149] [Microsoft .NET Framework, version 4.0.30319.18444]
[INFO] [14:41:01.149] Copyright (C) Microsoft Corporation. All rights reserved.
[INFO] [14:41:01.149] 
[INFO] [14:41:01.189] Build started 21/11/2014 14:41:01.
[INFO] [14:41:01.410] Project "C:\Jenkins\workspace\xxx\xxx\trunk\src\target\sonar\StyleCop-msbuild.proj" on node 1 (default targets).
[INFO] [14:41:01.411] StyleCopLaunch:
[INFO] [14:41:01.411]   No violations encountered
[INFO] [14:41:01.416] Done Building Project "C:\Jenkins\workspace\xxx\xxx\trunk\src\target\sonar\StyleCop-msbuild.proj" (default targets).
[INFO] [14:41:01.421] 
[INFO] [14:41:01.421] Build succeeded.
[INFO] [14:41:01.421]     0 Warning(s)
[INFO] [14:41:01.421]     0 Error(s)
[INFO] [14:41:01.422] 
[INFO] [14:41:01.422] Time Elapsed 00:00:00.24
[INFO] [14:41:01.662] Sensor org.sonar.plugins.stylecop.StyleCopSensor@1d5df31 done: 609 ms

如果我在不同的 Jenkins 作业中单独运行每个模块,我会看到所有违规行为,包括 StyleCop 违规行为,所以当我使用聚合器 pom.xml 时,问题就出现了。我在 SonarQube 中使用以下插件

  • C# 3.3
  • Visual Studio 项目 1.2 的分析引导程序

声纳属性是

sonar.sourceEncoding=UTF-8
sonar.visualstudio.enable=true
sonar.exclusions=**/Reference.cs,**/*.designer.cs,**/*.Designer.cs,**/*.g.cs,**/target/**
sonar.stylecop.projectFilePath=trunk/src/

我不得不指定projectFilePath,因为如果我不这样做,分析就会失败。启用 Bootstrapper 后,我认为会自动检测到项目文件。还有另一种方法可以为每个模块指定 projectFilePath 吗?它们都在同一个文件夹结构trunk/src/ 下。

我也尝试过单独定义模块,因为它是在 here 完成但没有运气。我已经尝试了两天来实现这一目标,但我不知道还能尝试什么。

任何帮助将不胜感激!

【问题讨论】:

  • 使用 Maven 分析 .NET 解决方案虽然在技术上可能可行,但不受支持。我建议您切换到 sonar-runner,发布分析日志和您的 sonar-project.properties 文件。

标签: c# maven jenkins sonarqube stylecop


【解决方案1】:

我会禁用 VS 引导程序并使用 Core C# 设置

# Core CSharp settings
sonar.dotnet.visualstudio.solution.file=mySolution.sln
sonar.dotnet.test.assemblies=*Test*.dll
sonar.skippedModules=TestProject1,TestProject2

# VS Bootstrapper settings
sonar.visualstudio.enable=false 

# Scan Directories
sonar.projectBaseDir=SourceDirectory
sonar.dotnet.assemblies=OutputDirectory\.
sonar.dotnet.test.assemblies=OutputDirectory\

默认情况下,这将使用声纳规则来分析您的代码 (.cs) 文件。您可以随意选择 StyleCop / FxCop / Resharper 并将它们添加到设置文件中。

【讨论】:

  • 你为什么要这样做? BTW sonar.dotnet.visualstudio.solution.file 现在已弃用
猜你喜欢
  • 2015-11-20
  • 1970-01-01
  • 2021-02-09
  • 2023-03-03
  • 2017-10-11
  • 2012-09-18
  • 2021-09-04
  • 2016-09-19
  • 1970-01-01
相关资源
最近更新 更多