2016-02-26 5 views
5

現在、私は1.200.000 LOCプロジェクトを解析するために、C#プラグインとMSBuildランナーのSonarQube 5.1.2のインスタンスを持っています。私はラインでMSBuild Runnerを使用したC#プラグインのSonarQubeは除外されません

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

をsonar.propertiesファイルを作成したが、分析からログを読んだ後、[データベース]フォルダ内のファイルを分析し、分析されたクラスを削減する予定。 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とは非常に異なるSonarQube Scanner for MSBuildを使用しています。

使用しようとしているsonar.exclude行は、通常のSonarQubeスキャナを使用する場合にのみ有効です。これは、Sonar-project.propertiesファイルを取り込むためです。 MSBuildのSonarQubeスキャナーには、調整が可能なプロジェクト関連の設定を含むSonarQube.Analysis.Xmlファイルしかありません。

あなたはSonarQube.Analysis.Xmlファイルの上書き戦略のカップルを使用することができます。

  • * * projのファイル(SonarQubeモジュールに対応)MSBuildの中で定義されたプロジェクト固有のプロパティをオーバーライドすることができます。:
  • コマンドラインで定義されたプロパティ(/ D:プロパティ名=値)をオーバーライドすることができた:
  • SonarQube.Analysis.xml構成ファイル
  • SonarQubeユーザインタフェースで定義されたプロパティにで定義されたプロパティオーバーライドできるプロジェクトレベルすべて
  • あなたのソリューションから特定のフォルダや拡張子を除外するには

何かを上書きすることはできませんグローバルレベルでSonarQubeユーザーインターフェイスで定義されたプロパティ:

あなたに除外を追加する必要があります各プロジェクトの.csprojファイル。主ルートノード内で使用する構文は、<Project...>とターゲットの1つに、好ましくは<Target Name="BeforeBuild">としてください。以下の構文が十分に自己説明的であることを願っていますが、そうでない場合は、この回答の下にコメントを残してください。すぐに更新します。

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

希望します。

Source

+0

SonarQube 5にアップグレードしました。3、管理セクションで除外を構成する、私はsonarqubeのコマンドラインで除外を設定します。ランナーが実行されると、両方の場所で定義された除外パターンを持つ独自のSonarQube.Analysis.xmlファイルが生成されます。 Noneは適用されます:( – XtianGIS

+0

@ XtianGISはい、そういうわけで、これに基づいてSonarQube.Analysis.xmlファイルを生成する必要があるため、.csprojファイルに変更を加える必要があります。 – anthonymonori

+0

SonarQube.Analysis.xml – XtianGIS

関連する問題