2016-02-26 16 views
5

Obecnie mam instancję SonarQube 5.1.2 z wtyczką C# i programem MSBuild w celu analizy projektu LOC 1.200.000. Mam zamiar zmniejszyć klas, które są analizowane, stworzyłem plik sonar.properties z liniąSonarQube z wtyczką C# z MSBuild Runner nie pobiera wyłączeń

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

ale po przeczytaniu dziennika z analizy, pliki znajdujące się w folderze Bazy danych zostały przeanalizowane. postępując zgodnie z instrukcjami z Eric Starr, ustawić tę prostą regułę wykluczeń w wezwaniu biegacza:

"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" 

okazało się, że zawodnik tworzy sonar-project.properties plik i zawiera wiele plików znajdujących się na folder z bazami danych:

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,\ 
,\..... 

Jak rozumiem, w folderze baz danych nie powinno być żadnych plików. Czy się mylę?

+0

Hi @XtianGIS jeśli poniżej odpowiedź rozwiązała Twój pytanie należy rozważyć [zaakceptowaniem] (http://stackoverflow.com/a/35722039/1132448) poprzez kliknięcie symbolu zaznaczenia. Wskazuje to szerszej społeczności, że znalazłeś rozwiązanie i dajesz reputację zarówno autorowi, jak i sobie. – CyberJacob

Odpowiedz

8

Używasz urządzenia SonarQube Scanner for MSBuild, które różni się od zwykłego SonarQube Scanner używanego we wszystkich innych językach.

Linia sonar.exclude, której próbujesz użyć, działałaby tylko wtedy, gdy używasz zwykłego skanera SonarQube, ponieważ pobiera on plik Sonar-project.properties. Skaner SonarQube dla MSBuild zawiera tylko plik SonarQube.Analysis.Xml, który zawiera ustawienia związane z projektem, które można dostrajać.

Można użyć kilka strategii zastępowało dla pliku SonarQube.Analysis.Xml:

  • Właściwość projekt specyficzne określono w MSBuild * * plik proj (odpowiadającego modułu SonarQube) może zastąpić.:
  • właściwość zdefiniowana w linii polecenia (/ d: propertyName = wartość) ma co może przesłaniać:
  • właściwością zdefiniowaną w pliku konfiguracyjnego SonarQube.Analysis.xml
  • właściwość określona w interfejsie użytkownika na SonarQube poziom projektu, który może przesłonić wszystko
  • Właściwość określona w SonarQube interfejsu użytkownika na poziomie globalnym, które nie mogą przesłonić coś

Aby wykluczyć określone foldery lub rozszerzenia ze swoim rozwiązanie:

Trzeba dodać do wykluczeń każdy indywidualny projekt ".csproj plik. Oto składnia, którą powinieneś użyć w głównym węźle głównym, o nazwie <Project...> i do jednego z celów, najlepiej <Target Name="BeforeBuild">. Mam nadzieję, że poniższa składnia jest dość oczywista, ale na wszelki wypadek, proszę zostaw komentarz pod tą odpowiedzią, a od razu ją zaktualizuję.

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

Mam nadzieję, że pomoże!

Source

+0

Zrobiłem upgrade do SonarQube 5.3, skonfiguruj wykluczenia w sekcji administracyjnej, a także ustawiam wykluczenia w linii poleceń sonarqube. po uruchomieniu runner generuje własny plik SonarQube.Analysis.xml ze wzorami wykluczeń zdefiniowanymi w obu miejscach. Żadne nie jest stosowane :( – XtianGIS

+0

@XtianGIS Tak, dlatego musisz dokonać zmian w pliku .csproj, ponieważ powinien on wygenerować plik SonarQube.Analysis.xml również na podstawie tych danych. – anthonymonori

+0

Przypuszczam, że jeśli SonarQube.Analysis.xml zawiera wzorce wykluczeń, które powinny działać – XtianGIS