2017-12-19 20 views
1

SonarQube를 사용하여 Android 및 iOS 응용 프로그램과 함께 Xamarin.Forms 프로젝트의 C# 코드를 분석하고 싶습니다. 이를 위해 나는 SonarQube examples에서 가져온 code issues을 포함하는 demo app을 만들었습니다. 그러나 이러한 문제는 코드를 스캔 한 후 SonarQube에서 감지하지 못합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? SonarQube가 Xamarin 프로젝트의 C# 문제를 감지하지 못합니다.

나는 these 지침을 따라 맥 OS 시에라에 설치 :

  • SonarQube 6.7 LTS
  • SonarQube 스캐너를 MSBuild에서 4.0.1.883에 대한
  • 6.7 플러그인
  • SonarC 번호 분석기
(4267 빌드)

Xamarin과 함께 제공되는 msbuild 15.2.0.0을 사용하여 프로젝트를 빌드합니다.

터미널에서 내 디렉터리를 cd /SonarQubeXamarinDemo/SonarQube으로 변경하고 다음 명령을 실행합니다.

mono /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/MSBuild.SonarQube.Runner.exe begin /k:"test" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="***" 


Default properties file was found at /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/SonarQube.Analysis.xml 
Loading analysis properties from /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/SonarQube.Analysis.xml 
Pre-processing started. 
Preparing working directories... 
15:14:24.778 Updating build integration targets... 
15:14:24.796 Fetching analysis configuration settings... 
15:14:25.164 Provisioning analyzer assemblies for cs... 
15:14:25.165 Installing required Roslyn analyzers... 
15:14:25.225 Pre-processing succeeded. 

msbuild /t:Rebuild 

... 

mono /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/MSBuild.SonarQube.Runner.exe end 

SonarQube Scanner for MSBuild 4.0.1 
Default properties file was found at /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/SonarQube.Analysis.xml 
Loading analysis properties from /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/SonarQube.Analysis.xml 
Post-processing started. 
SONAR_SCANNER_OPTS is not configured. Setting it to the default value of -Xmx1024m 
Calling the SonarQube Scanner... 
INFO: Scanner configuration file: /Users/christopher/Downloads/sonar-scanner-msbuild-4.0.1.883/sonar-scanner-3.0.3.778/conf/sonar-scanner.properties 
INFO: Project root configuration file: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/.sonarqube/out/sonar-project.properties 
INFO: SonarQube Scanner 3.0.3.778 
INFO: Java 1.8.0_91 Oracle Corporation (64-bit) 
INFO: Mac OS X 10.12.6 x86_64 
INFO: SONAR_SCANNER_OPTS=-Xmx1024m 
INFO: User cache: /Users/christopher/.sonar/cache 
INFO: Publish mode 
INFO: Load global settings 
INFO: Load global settings (done) | time=92ms 
INFO: Server id: AWBqDLDnW0cFaKeFAIpa 
INFO: User cache: /Users/christopher/.sonar/cache 
INFO: Load plugins index 
INFO: Load plugins index (done) | time=47ms 
INFO: SonarQube server 6.7.0 
INFO: Default locale: "de_DE", source code encoding: "UTF-8" (analysis is platform dependent) 
INFO: Process project properties 
INFO: Load project repositories 
INFO: Load project repositories (done) | time=104ms 
INFO: Load quality profiles 
INFO: Load quality profiles (done) | time=28ms 
INFO: Load active rules 
INFO: Load active rules (done) | time=418ms 
INFO: Load metrics repository 
INFO: Load metrics repository (done) | time=21ms 
INFO: Project key: test 
INFO: ------------- Scan SonarQube.iOS 
INFO: Load server rules 
INFO: Load server rules (done) | time=116ms 
INFO: Base dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/iOS 
INFO: Working dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/.sonarqube/out/.sonar/test_test_6E8E4F09-4D51-490F-A002-4E844C8CEC18 
INFO: Source encoding: UTF-8, default locale: de_DE 
INFO: Index files 
INFO: 0 files indexed 
INFO: Sensor SonarJavaXmlFileSensor [java] 
INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=0ms 
INFO: Sensor Analyzer for "php.ini" files [php] 
INFO: Sensor Analyzer for "php.ini" files [php] (done) | time=3ms 
INFO: ------------- Scan SonarQube.Droid 
INFO: Base dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/Droid 
INFO: Working dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/.sonarqube/out/.sonar/test_test_E9EA7651-B0E9-4DAD-9256-A858860C4022 
INFO: Source encoding: UTF-8, default locale: de_DE 
INFO: Index files 
INFO: 0 files indexed 
INFO: Sensor SonarJavaXmlFileSensor [java] 
INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=0ms 
INFO: Sensor Analyzer for "php.ini" files [php] 
INFO: Sensor Analyzer for "php.ini" files [php] (done) | time=1ms 
INFO: ------------- Scan SonarQube 
INFO: Base dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/SonarQube 
INFO: Working dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/.sonarqube/out/.sonar/test_test_9200C6D4-CA74-49DD-910F-6DAF012CCCDF 
INFO: Source encoding: UTF-8, default locale: de_DE 
INFO: Index files 
INFO: 0 files indexed 
INFO: Sensor SonarJavaXmlFileSensor [java] 
INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=1ms 
INFO: Sensor Analyzer for "php.ini" files [php] 
INFO: Sensor Analyzer for "php.ini" files [php] (done) | time=0ms 
INFO: ------------- Scan test 
INFO: Base dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube 
INFO: Working dir: /Users/christopher/Documents/SonarQubeXamarinDemo/SonarQube/.sonarqube/out/.sonar 
INFO: Source paths: SonarQube/SonarQube.cs, SonarQube/Properties/AssemblyInfo.cs, SonarQube/packages.config, iOS/Main.cs, iOS/AppDelegate.cs, iOS/Info.plist, iOS/Entitlements.plist, iOS/packages.config, Droid/MainActivity.cs, Droid/Resources/Resource.designer.cs, Droid/Properties/AssemblyInfo.cs, Droid/Resources/AboutResources.txt, Droid/Properties/AndroidManifest.xml, Droid/Assets/AboutAssets.txt, Droid/packages.config 
INFO: Source encoding: UTF-8, default locale: de_DE 
INFO: Index files 
INFO: 15 files indexed 
INFO: Quality profile for cs: Sonar way 
INFO: Quality profile for xml: Sonar way 
INFO: Sensor C# Properties [csharp] 
INFO: Sensor C# Properties [csharp] (done) | time=0ms 
INFO: Sensor SonarJavaXmlFileSensor [java] 
WARNING: WARN: Property missing: 'sonar.cs.analyzer.projectOutPaths'. No protobuf files will be loaded for this project. 
WARNING: WARN: No roslyn issues report not found for this project. 
INFO: 1 source files to be analyzed 
INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=62ms 
INFO: 1/1 source files have been analyzed 
INFO: Sensor XML Sensor [xml] 
INFO: Sensor XML Sensor [xml] (done) | time=211ms 
INFO: Sensor Analyzer for "php.ini" files [php] 
INFO: Sensor Analyzer for "php.ini" files [php] (done) | time=0ms 
INFO: Sensor C# [csharp] 
INFO: Sensor C# [csharp] (done) | time=0ms 
INFO: Sensor Zero Coverage Sensor 
INFO: Sensor Zero Coverage Sensor (done) | time=11ms 
INFO: Sensor CPD Block Indexer 
INFO: Sensor CPD Block Indexer (done) | time=0ms 
INFO: SCM provider for this project is: git 
INFO: 8 files to be analyzed 
INFO: 0/8 files analyzed 
WARNING: WARN: Missing blame information for the following files: 
WARNING: WARN: * Droid/MainActivity.cs 
WARNING: WARN: * Droid/Properties/AndroidManifest.xml 
WARNING: WARN: * Droid/Properties/AssemblyInfo.cs 
WARNING: WARN: * Droid/Resources/Resource.designer.cs 
WARNING: WARN: * SonarQube/Properties/AssemblyInfo.cs 
WARNING: WARN: * SonarQube/SonarQube.cs 
WARNING: WARN: * iOS/AppDelegate.cs 
WARNING: WARN: * iOS/Main.cs 
WARNING: WARN: This may lead to missing/broken features in SonarQube 
INFO: Calculating CPD for 0 files 
INFO: CPD calculation finished 
INFO: Analysis report generated in 99ms, dir size=216 KB 
INFO: Analysis reports compressed in 19ms, zip size=37 KB 
INFO: Analysis report uploaded in 48ms 
INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/test 
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report 
INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AWBvIYbsCU-ClqGI-H2t 
INFO: Task total time: 3.392 s 
INFO: ------------------------------------------------------------------------ 
INFO: EXECUTION SUCCESS 
INFO: ------------------------------------------------------------------------ 
INFO: Total time: 4.593s 
INFO: Final Memory: 49M/401M 
INFO: ------------------------------------------------------------------------ 
The SonarQube Scanner has finished 
15:15:56.62 Creating a summary markdown file... 
15:15:56.627 Analysis results: http://localhost:9000/dashboard/index/test 
15:15:56.628 Post-processing succeeded. 

보고서는 감지 된 문제가 표시되지 않습니다 : enter image description here

내가 이러한 경고를 발견하지만이 발견되지 않은 코드 문제와 관련이 있는지 알고하지 않습니다

WARNING: WARN: Property missing: 'sonar.cs.analyzer.projectOutPaths'. No protobuf files will be loaded for this project. 
WARNING: WARN: No roslyn issues report not found for this project. 

성공하지 않고 문제를 해결하기 위해 지금까지 시도한 것

,210
  • 저도 같은 문제에 직면했다 /d:sonar.language=cs
+0

나는 [this] (https://forums.xamarin.com/discussion/111935/source-code-analysis-for-xamarin-project-with-sonarqube-on-mac/p1?new=1)을 발견했습니다. Xamarin 포럼. 그것이 당신을 도울 수 있기를 바랍니다. –

+0

고마워, 나는 그것을 검토했는데 나의 셋업에 차이점을 발견 할 수 없다. –

답변

0

사용하여 C#을 언어를 설정. 그래서 아래와 같은 접근 방식을 변경 :

sonar-scanner-msbuild-4.0.1.883\SonarQube.Scanner.MSBuild.exe begin /k:FAM dotnet restore dotnet build sonar-scanner-msbuild-4.0.1.883\SonarQube.Scanner.MSBuild.exe end

을 그래서 그 대신 당신이 후에 .NET CLI 명령을 사용할 수 있습니다 MSBuild.exe를 사용하는.

+0

감사합니다.'dotnet'을 사용하여 Xamarin 프로젝트를 만들려고했지만 Xamarin.iOS와 Xamarin.Android를 지원하지 않습니다. [여기] (https://github.com/dotnet/cli/issues/6011)에서 설명한 것과 같은 오류가 나타납니다. –