SonarQube ile Xcode'u entegre etmek ve Objective-C kodunu analiz etmek için this makalesini takip ediyorum. Kurulum işlevsel olsa da ve kabuk komut dosyasını çalıştırdıktan sonra hata/uyarı almamakla birlikte, Kontrol Paneli'nde herhangi bir ihlal gösterilmiyor. Gördüğüm tek şey, no gibi temel metrikler. kod satırları, no. dosyalar, vb. Bunu deneyen ve bana daha fazla yol gösteren biri var mı? Xcode ile Sonarqube kullanma
cevap
Eski bir SonarQube sürümü ile denemelisiniz (genellikle < 4.0 çalışır).
Yukarıda belirttiğiniz makaleye ek olarak, bunlara birkaç ekleme ekledim. Sen, aşağıdaki adımları takip edebilirsiniz
Önkoşullar:
- Sonar
- Sonar-runner
- SonarQube Objective-C eklenti (Lisanslı)
- XCTool
- OCLint (ihlalleri) ve gcovr (kod kapsamı)
- MySql ve JDK
Kurulum Adımları:
- İndirme ve MySQL dmg yükleyin. Ve sonra MySQL sunucusunu Sistem Tercihleri'nden veya komut satırından başlatın veya yeniden başlatıldığında komut satırı olması gerekir.
sudo /usr/local/mysql/support-files/mysql.server restart
durdurmak için - -
sudo /usr/local/mysql/support-files/mysql.server start
- yeniden başlatmak için -
sudo /usr/local/mysql/support-files/mysql.server stop
indirin ve en son JDK sürümünü yüklemek
- başlatın.
önkoşullarını yüklemek için terminale gidin ve aşağıdaki komutları girin. (Homebrew, Mac İşletim Sistemi için yönetim sistemidir.
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
veyabrew install https://gist.githubusercontent.com/TonyAnhTran/e1522b93853c5a456b74/raw/157549c7a77261e906fb88bc5606afd8bd727a73/oclint.rb for version 0.8.1(updated))
homebrew yüklemek, komutu girin gcovr -
brew install gcovr
Yapılandırma:
- Sonar Seti çevre yolu:
export SONAR_HOME=/usr/local/Cellar/sonar-runner/2.4/libexec
export SONAR=$SONAR_HOME/bin
export PATH=$SONAR:$PATH
nihayet komut echo $SONAR_HOME
yolunu dönmelidir - /usr/local/Cellar/sonar-runner/2.4/libexec
- Set MySQL DB'yi açın:
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 yapılandırma ayarları:
vi /usr/local/Cellar/sonar/5.1.2/libexec/conf/sonar.properties
kimlik bilgileri ve mysql hariç çoğu seçenekleri açıklama ve doğru veritabanı adını girin emin olabilirsiniz.
örn:
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
kimlik bilgileri ve mysql hariç çoğu seçenekleri açıklama ve doğru veritabanı adını girin emin olabilirsiniz.
örn: - bu yüzden tercih tarayıcınızda http://localhost:9000 gidin komut sonar başlatacak
sonar start
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar_firstdb?useUnicode=true&characterEncoding=utf8
Başlat sonar komutunu kullanarak . Giriş (admin/admin) ve etrafınıza bir göz atın.
- Şimdi Objective-C veya Swift eklentisini yüklemelisiniz.
Ayarlar -> Sistem -> Güncelleştirme Merkezi -> Kullanılabilir Eklentiler'e gidin (gerekli eklentiyi yükleyin).
Sen pligin eklendikten sonra yüklemeyi tamamlamak, Ve eklentisi yüklendikten sonra lisans anahtarı eklemek için sonar yeniden başlatmanız gerekir. Terminal aracılığıyla
Eğer sonar incelemek istediğiniz bir projenin kök dizinine gidin ve belirli özellikler şu komutla dosyası bir proje oluşturun:
vi sonar-project.properties
Aşağıdaki proje spesifik ekle projenize göre cesur bölümleri özellikleri ve düzenleyin.
// 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://...
- kaydet dosya ve diğer projeler için aynı yeniden kullanabilirsiniz.
sonar-runner
bu sorunu çözdü mü - Proje kök dizininde
Evet, bu fine..Did çalışıyor u bunu deneyin ?? –
Evet - Hala karmaşıklık duplikasyona yönelik herhangi ölçümlerini görmüyorum, tam olarak bu izledi. – electricSunny