2015-04-28 19 views
8

Podążam za artykułem this, aby zintegrować SonarQube z Xcode i przeanalizować kod Objective-C. Mimo że konfiguracja jest funkcjonalna i nie ma błędów/ostrzeżeń po uruchomieniu skryptu powłoki, żadne naruszenia nie są widoczne na pulpicie nawigacyjnym. Wszystko, co widzę, to podstawowe dane, takie jak nie. linii kodu, nie. plików itp. Czy jest ktoś, kto próbował tego i poprowadził mnie dalej. enter image description hereKorzystanie z Sonarqube z Xcode

Odpowiedz

0

Powinieneś tego spróbować ze starszą wersją SonarQube (zazwyczaj działa < 4.0).

9

Oprócz artykułu, który podałeś powyżej, mam kilka dodatków do tego. Można wykonaj poniższe kroki,

wstępne:

  • Sonar
  • Sonar-biegacz
  • SonarQube Objective-C wtyczki (licencjonowany)
  • XCTool
  • OCLint (łamanie) i gcovr (zasięg kodu)
  • MySql i JDK

Kroki instalacji:

  • pobrać i zainstalować MySql dmg. A następnie uruchom serwer MySQL z Preferencji systemowych lub za pomocą wiersza poleceń lub jeśli zostanie uruchomiony ponownie, musi to być wiersz poleceń.
  • Aby rozpocząć - sudo /usr/local/mysql/support-files/mysql.server start
  • Aby ponownie uruchomić - sudo /usr/local/mysql/support-files/mysql.server restart
  • Aby zatrzymać - sudo /usr/local/mysql/support-files/mysql.server stop

  • Pobierz i zainstaluj najnowszą wersję JDK.

  • Przejdź do terminala i wprowadź następujące polecenia, aby zainstalować wymagania wstępne . (Homebrew jest pakietem zarządzania dla systemu operacyjnego Mac.zainstalować homebrew wprowadzić poleceń -

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)") 
    
  • sonar - brew install sonar

  • sonar-runner - brew install sonar-runner
  • XCTool - brew install xctool
  • OCLint - brew install oclint lub

    brew install https://gist.githubusercontent.com/TonyAnhTran/e1522b93853c5a456b74/raw/157549c7a77261e906fb88bc5606afd8bd727a73/oclint.rb for version 0.8.1(updated)) 
    
  • gcovr - brew install gcovr

Konfiguracja:

- Set ścieżka otoczenie Sonar:

export SONAR_HOME=/usr/local/Cellar/sonar-runner/2.4/libexec 
export SONAR=$SONAR_HOME/bin 
export PATH=$SONAR:$PATH 

wreszcie komenda echo $SONAR_HOME powinna powrócić na ścieżkę - /usr/local/Cellar/sonar-runner/2.4/libexec

- Set do MySql DB:

export PATH=${PATH}:/usr/local/mysql/bin 
mysql -u root; 
CREATE DATABASE sonar_firstdb; 
CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'sonar’; 
GRANT ALL PRIVILEGES ON sonar_firstdb.* TO 'sonar'@'localhost’; 
FLUSH PRIVILEGES; 
exit 

- Set Sonar ustawienia konfiguracyjne:

vi /usr/local/Cellar/sonar/5.1.2/libexec/conf/sonar.properties 

Można wykomentuj większość opcji z wyjątkiem poświadczeń i MySQL i upewnij się, że wpisanie poprawnej nazwy bazy danych.

np:

sonar.jdbc.url=jdbc:mysql://localhost:3306/**sonar_firstdb**?useUnicode=true&amp;characterEncoding=utf8&amp;rewriteBatchedStatements=true 
vi /usr/local/Cellar/sonar-runner/2.4/libexec/conf/sonar-runner.properties 

Można wykomentuj większość opcji z wyjątkiem poświadczeń i MySQL i upewnij się, że wpisanie poprawnej nazwy bazy danych.

np:

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar_firstdb?useUnicode=true&amp;characterEncoding=utf8 
  • start sonar za pomocą polecenia -

    sonar start 
    

Komenda będzie uruchomić sonar więc przejść do http://localhost:9000 w przeglądarce wyboru . Zaloguj się (admin/admin) i rozejrzyj się.

  • Teraz musisz zainstalować plugin Objective-C lub Swift.

Przejdź do Ustawienia -> System -> Centrum aktualizacji -> Dostępne wtyczki (zainstaluj wymaganą wtyczkę).

Musisz ponownie uruchomić sonar, aby ukończyć instalację po dodaniu pligina, I dodać klucz licencyjny po zainstalowaniu wtyczki.

  • pośrednictwem terminala przejdź do katalogu głównego projektu, który chcesz sonar do wglądu i utworzyć projekt złożenia specyficzne właściwości za pomocą następującego polecenia:

    vi sonar-project.properties 
    

dodać następujący projekt specyficzny właściwości i edytuj pogrubione sekcje zgodnie z projektem.

// Required configuration 

sonar.projectKey=**com.payoda.wordsudoku** 
sonar.projectName=**DragDrop** 
sonar.projectVersion=**1.0** 
sonar.language=**objc** 

// Project description 
sonar.projectDescription=**Sample description** 

// Path to source directories 
sonar.sources=**~/path to your project** 
// Path to test directories (comment if no test) 
//sonar.tests=testSrcDir 


// Xcode project configuration (.xcodeproj or .xcworkspace) 
// -> If you have a project: configure only sonar.objectivec.project 
// -> If you have a workspace: configure sonar.objectivec.workspace and sonar.objectivec.project 
// and use the later to specify which project(s) to include in the analysis (comma separated list) 
sonar.objectivec.project=**DragDrop.xcodeproj** 
// sonar.objectivec.workspace=myApplication.xcworkspace 

// Scheme to build your application 
sonar.objectivec.appScheme=**DragDrop** 
// Scheme to build and run your tests (comment following line of you don't have any tests) 
//sonar.objectivec.testScheme=myApplicationTests 

///////////////////////// 
// Optional configuration 


// Encoding of the source code 
sonar.sourceEncoding=**UTF-8** 

// JUnit report generated by run-sonar.sh is stored in sonar-reports/TEST-report.xml 
// Change it only if you generate the file on your own 
// Change it only if you generate the file on your own 
// The XML files have to be prefixed by TEST- otherwise they are not processed 
// sonar.junit.reportsPath=sonar-reports/ 

// Cobertura report generated by run-sonar.sh is stored in sonar-reports/coverage.xml 

// Change it only if you generate the file on your own 
// sonar.objectivec.coverage.reportPattern=sonar-reports/coverage*.xml 

// OCLint report generated by run-sonar.sh is stored in sonar-reports/oclint.xml 
// Change it only if you generate the file on your own 
// sonar.objectivec.oclint.report=sonar-reports/oclint.xml 

// Paths to exclude from coverage report (tests, 3rd party libraries etc.) 
// sonar.objectivec.excludedPathsFromCoverage=pattern1,pattern2 
sonar.objectivec.excludedPathsFromCoverage=.*Tests.* 

// Project SCM settings 
// sonar.scm.enabled=true 
// sonar.scm.url=scm:git:https://... 
  • Zapisz plik i można ponownie wykorzystać to samo dla innych projektów.
  • W katalogu głównego projektu uruchomić komendę - sonar-runner
+0

Czy to rozwiązało problem? – electricSunny

+0

Tak, to działa poprawnie. Czy próbowałeś tego dokonać? –

+0

Tak - dokładnie to zrobiłem, nadal nie widzę żadnych wskaźników powielania złożoności. – electricSunny