2016-02-26 6 views
5

В настоящее время у меня есть экземпляр SonarQube 5.1.2 с плагином C# и бегуном MSBuild, чтобы проанализировать проект LOC 1.200.000. Я намерен сократить классы, которые анализируются, я создал файл sonar.properties с линиейSonarQube с плагином C# с MSBuild Runner не принимает исключений

sonar.exclusions=**/Databases/**/*.* 

но после прочтения журнала из анализа, были проанализированы файлы внутри папки Базы данных. следуя инструкции из Eric Starr, я установил это простое правило исключения при вызове бегуна:

"C:\sonarqube-5.1.2\bin\MSBuild.SonarQube.Runner.exe" begin /k:MyProject /n:MyProject /v:2 /d:sonar.exclusions="file:C:\codesource\Databases/**/*.*" /d:sonar.scm.provider=tfvc /d:sonar.tfvc.username=************* /d:sonar.tfvc.password.secured={aes}*************************** "/d:sonar.cs.vscoveragexml.reportsPaths=C:\codesource\CodeCoverage\Results.coveragexml" 

я обнаружил, что бегун создает sonar-project.properties файл, и он содержит много файлов, которые находятся в базы данных:

BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase 
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectName=myDatabase 
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.projectBaseDir=C:\\codesource\\Databases\\myDatabase 
BC78C8C4-8ECD-47CB-9781-F621AE109FE4.sonar.sources=\ 
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\PATCH_20150527_01.sql,\ 
C:\\codesource\\Databases\\myDatabase\\Scripts\\PreDeployment\\ROCOMMON.DBVERSION.sql,\ 
,\..... 

как я понял, в базе данных не должно быть файлов. Я ошибаюсь?

+0

Привет @XtianGIS если ниже ответ решил свой вопрос, пожалуйста, рассмотреть [принимая ее] (http://stackoverflow.com/a/35722039/1132448), нажав на галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. – CyberJacob

ответ

8

Вы используете SonarQube Scanner for MSBuild, который сильно отличается от обычного SonarQube Scanner, который используется для любых других языков.

Строка sonar.exclude, которую вы пытаетесь использовать, будет работать только в том случае, если вы будете использовать обычный сканер SonarQube, потому что это занимает файл Sonar-project.properties. Сканер SonarQube для MSBuild содержит только файл SonarQube.Analysis.Xml, содержащий параметры, связанные с проектом, которые вы можете настроить.

Вы можете использовать несколько стратегий перезаписи файла SonarQube.Analysis.Xml:

  • Свойство конкретного проекта определяется в MSBuild * * проектируемый файл (соответствующего модуля SonarQube) можно переопределить.:
  • свойство определено в командной строке (/ г: PropertyName = значение) имеет который может переопределять:
  • свойство, определенное в файле конфигурации SonarQube.Analysis.xml
  • свойство, определенное в SonarQube интерфейса пользователя на уровень проекта, который может переопределить все
  • Свойство определено в SonarQube интерфейс пользователя на глобальном уровне, который не может переопределить ничего

Чтобы исключить определенные папки или расширения от вашего решения:

Вам нужно добавить в исключает каждый файл проектов .csproj каждого отдельного проекта. Вот синтаксис, который вы должны использовать в основном корневом узле, называемом <Project...>, и в одну из целей, предпочтительно <Target Name="BeforeBuild">. Надеюсь, что приведенный ниже синтаксис достаточно прост в использовании, но в случае, если это не так, пожалуйста, оставьте комментарий в этом ответе, и я немедленно его обновлю.

<Target Name="BeforeBuild"> 
    <ItemGroup> 
      <SonarQubeSetting Include="sonar.exclusions"> 
       <Value>**/Databases/**/*</Value> 
      </SonarQubeSetting> 
     </ItemGroup> 
    </Target> 

Надеюсь, это поможет!

Source

+0

Я сделал обновление до SonarQube 5.3, настройте исключения в разделе администрирования, а также установите исключения в командной строке sonarqube. когда runner выполняется, он генерирует собственный файл SonarQube.Analysis.xml с шаблонами исключений, определенными в обоих местах. None применяется :( – XtianGIS

+0

@XtianGIS Да, поэтому вам нужно внести изменения в файл .csproj, так как он должен сгенерировать файл SonarQube.Analysis.xml на основе этих тоже. – anthonymonori

+0

Я полагаю, если SonarQube.Analysis.xml содержит шаблоны исключений, которые должны работать. – XtianGIS