http://www.codewrecks.com/blog/index.php/2017/07/22/exclude-folders-from-sonarqube-analysis/

тоящее время мы используем сканер SonarQube для VSTS / TFS 4.1.1 (который использует сканер SonarQube 4.1.1).

Что мы хотим сделать:

Для некоторых проектов (модулей) в нашем решении мы хотим исключить файлы из анализа и из статистики покрытия кода. Это должно быть сделано в удобном для использования виде, используя шаблоны файлов и не изменяя задачу сборки TFS.

Структура проекта:
    |- Source
      |- ProjectA
        |- Scripts (should be excluded)
        |- OwnCode
      |- ProjectB
        |- Views (only code coverage should be excluded)
        |- Presenters
        |- ...
      |- ProjectC
        |- Scripts (should be scanned)
        |- ...
      |- ...
      |- Solution.sln
Что мы пробовали:Исключая из задачи сборки TFSАбсолютный путь (с обратной или наклонной чертой):sonar.exclusions="$(Build.SourcesDirectory)\Source\ProjectA\Scripts\**\*.js" (похоже на покрытие)Относительный путь:**/ProjectsA/Scripts/**/*.jsЗа исключением внешнего интерфейса SonarQubeАнализ исключения:**/ProjectA/Scripts/**/*.jsИсключение покрытия:**/ProjectB/Views/**/*.csИсключая с sonar-project.properties:Не поддерживается и приводит к следующей ошибке:sonar-project.properties files are not understood by the SonarScanner for MSBuildЧто мы видим:

Журналы контекста сканера в веб-интерфейсе SonarQube:

  Settings for module: Solution:Solution:6FA7B5C2-667D-4387-98B9-445617F2AC0B
  - sonar.coverage.exclusions=**/ProjectA/Views/**/*.cs
  - sonar.cs.analyzer.projectOutPath=D:\agent1\_work\5\.sonarqube\out\9
  - sonar.cs.analyzer.projectOutPaths="D:\agent1\_work\5\.sonarqube\out\9"
  - sonar.cs.roslyn.reportFilePath=D:\agent1\_work\5\s\Source\Solution\Source\ProjectA\bin\Release\ProjectA.dll.RoslynCA.json
  - sonar.cs.roslyn.reportFilePaths="D:\agent1\_work\5\s\Source\Solution\Source\ProjectA\bin\Release\ProjectA.dll.RoslynCA.json"
  - sonar.exclusions=**/ProjectA/Scripts/**/*.js
  - sonar.moduleKey=Solution:Solution:6FA7B5C2-667D-4387-98B9-445617F2AC0B
  - sonar.projectBaseDir=D:\agent1\_work\5\s\Source\Solution\Source\ProjectA
  - sonar.projectKey=Solution:Solution:6FA7B5C2-667D-4387-98B9-445617F2AC0B
  - sonar.projectName=ProjectA
  - sonar.sourceEncoding=utf-8
  - sonar.sources="D:\agent1\_work\5\s\Source\Solution\Source\ProjectA\Scripts\abc.js","..."

Журналы сканера MSBuild в сборке TFS:

Base dir: D:\agent1\_work\5\s\Source\Solution\Source\ProjectA
Working dir: D:\agent1\_work\5\.sonarqube\out\.sonar\Solution_Solution_6FA7B5C2-667D-4387-98B9-445617F2AC0B
Source paths: Scripts/abc.cs, ...
Source encoding: UTF-8, default locale: en_US
Index files
Excluded sources: 
  **/ProjectA/Scripts/**/*.js
172 files indexed
0 files ignored because of inclusion/exclusion patterns
Quality profile for cs: Sonar way
Quality profile for js: Sonar way
Excluded sources for coverage: 
  **/ProjectB/Views/**/*.cs
Sensor C# Properties [csharp]
Sensor C# Properties [csharp] (done) | time=15ms
Sensor SonarJavaXmlFileSensor [java]
Sensor SonarJavaXmlFileSensor [java] (done) | time=0ms
Sensor SonarJS [javascript]
Что мы не пробовали:Исключение отдельных файлов путем изменения файлов проекта

Мы не хотим делать это, потому что это невозможно отремонтировать.

Исключая весь проект

Мы только хотим исключить некоторые папки / шаблоны из отдельных проектов в решении.

Ответы на вопрос(2)

Ваш ответ на вопрос