【发布时间】: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