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. Korzystanie z Sonarqube z Xcode
Odpowiedz
Powinieneś tego spróbować ze starszą wersją SonarQube (zazwyczaj działa < 4.0).
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
lubbrew 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&characterEncoding=utf8&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&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
- 1. Uaktualnienie problemów z SonarQube
- 2. Korzystanie z analizatora statycznego Clang z poziomu kodu XCode
- 3. Korzystanie z ".." z pętlą for
- 4. SonarQube haczyk 22 z serializować list
- 5. SonarQube i squidS2095 z Java 8
- 6. klucz błąd Duplikat z SonarQube 5,2
- 7. Eksport listy reguł kodowania z Sonarqube
- 8. Korzystanie NSUserDefaults z Xcode iOS 8 i 10
- 9. Korzystanie Cocoapods w osadzonym ram z Xcode 6 GM
- 10. XCode 4.2 i korzystanie z biblioteki statycznej powodującej problemy
- 11. SonarQube z wtyczką C# z MSBuild Runner nie pobiera wyłączeń
- 12. Korzystanie z Prism z Ninject
- 13. Korzystanie z Backspace z ncurses
- 14. Korzystanie z LINQ z NHibernate
- 15. Korzystanie z UTC z Sequel?
- 16. Korzystanie z ServletContextListener z Jetty
- 17. Korzystanie z układu z dzianinami
- 18. Korzystanie z System.Speech z Kinectem
- 19. Korzystanie z Jython z Django?
- 20. Korzystanie z Tesseract z java
- 21. brakująca deska rozdzielcza sonarqube
- 22. SonarQube nie uruchamia się
- 23. Zapobieganie spamowi; Korzystanie z Nodemailer; Korzystanie z Sendmaila
- 24. Błędy instalacji SonarQube
- 25. Korzystanie z nierozwiązanym identyfikatora przy użyciu stałych StoreKit z iOS 9.3/Xcode 7.3
- 26. korzystanie z usługi ntp
- 27. Korzystanie z CoTaskMemAlloc?
- 28. Korzystanie z haczyków Malloc
- 29. Korzystanie Html.ActionLink z RouteValues
- 30. Korzystanie XSD z obejmuje
Czy to rozwiązało problem? – electricSunny
Tak, to działa poprawnie. Czy próbowałeś tego dokonać? –
Tak - dokładnie to zrobiłem, nadal nie widzę żadnych wskaźników powielania złożoności. – electricSunny