使用Jenkins的Maven聚合器对c#多模块项目进行Sonarqube StyleCop分析

时间:2014-11-21 17:04:28

标签: c# maven jenkins sonarqube stylecop

我有一个C#multimodule项目,我想运行SonarQube分析。该项目是使用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时会出现问题。我在SonarQube中使用以下插件

  • C#3.3
  • 分析Visual Studio Projects 1.2的Bootstrapper

声纳属性

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没有运气。我一直在努力实现这一天两天,我不知道还有什么可以尝试。

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

我会禁用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,也可以将它们添加到设置文件中。