{"id":1259,"date":"2017-11-24T10:30:27","date_gmt":"2017-11-24T08:30:27","guid":{"rendered":"http:\/\/metehantoksoy.com\/?p=1259"},"modified":"2017-11-24T10:30:27","modified_gmt":"2017-11-24T08:30:27","slug":"macos-sierra-uzerine-sonarqube-kurulumu","status":"publish","type":"post","link":"https:\/\/metehantoksoy.com\/?p=1259","title":{"rendered":"macOS Sierra \u00dczerine SonarQube Kurulumu"},"content":{"rendered":"<p>Merhaba.\u00a0Bu yaz\u0131da DevOps s\u00fcrecinde kullan\u0131lan ara\u00e7lardan biri olan SonarQube\u2019\u00fcn macOS Sierra \u00fczerine kurulumu konusu<em><strong>\u00a0<\/strong><\/em>\u00fczerinde duraca\u011f\u0131z.<\/p>\n<h2>SonarQube Nedir?<\/h2>\n<p><strong>SonarQube<\/strong> (<em>eski ad\u0131yla Sonar<\/em>)\u00a0Continious Integration (<em>S\u00fcrekli Entegrasyon<\/em>\u00a0<em>\u2013 CI<\/em>) s\u00fcrecinde kodu analiz ederek <strong><em>buglar\u0131<\/em><\/strong>, <em><strong>code smell&#8217;<\/strong><\/em>leri (k\u00f6t\u00fc kod?) ve olas\u0131 <em><strong>g\u00fcvenlik a\u00e7\u0131klar\u0131<\/strong><\/em> 20&#8217;nin \u00fczerindeki dilde (<em>Java, Android, C#, PHP, Javascript Objective-C, Swift vb.<\/em>) bulan ve raporlayan a\u00e7\u0131k kaynak kodlu bir platformdur ve <strong>Continuous Inspection<\/strong> (<em>S\u00fcrekli \u0130nceleme<\/em>) arac\u0131 olarak tan\u0131mlanabilir<a href=\"https:\/\/en.wikipedia.org\/wiki\/SonarQube\">*<\/a>. SonarQube raporunda <em><strong>kodlama standartlar\u0131<\/strong><\/em>, <em><strong>tekrarlanan kodlar<\/strong><\/em>, <em><strong>birim testleri<\/strong><\/em>, <em><strong>kod kapsam\u0131<\/strong><\/em> (<em>code coverage<\/em>), <em><strong>karma\u015f\u0131kl\u0131k<\/strong><\/em> (<em>code complexity<\/em>), <em><strong>hatalar<\/strong><\/em> ve <em><strong>g\u00fcvenlik bulgular\u0131<\/strong><\/em> detayl\u0131 \u015fekilde bulunur. SonarQube&#8217;\u00fcn avantajlar\u0131ndan biri de tamamen otomatik bir analiz ve build ara\u00e7lar\u0131 (<em>MSBuild, Gradle vb<\/em>.) ve CI ara\u00e7lar\u0131yla (<em>Jenkins, Atlassian Bamboo vb.<\/em>) entegrasyon sunmas\u0131d\u0131r.<\/p>\n<p><!--more--><\/p>\n<h2>macOS Sierra \u00dczerine SonarQube Kurulumu<\/h2>\n<p>SonarQube\u2019\u00fc kurmadan \u00f6nce:<\/p>\n<ul>\n<li>Root yetkisi olan (administrator \u2013 y\u00f6netici) kullan\u0131c\u0131s\u0131 hesab\u0131nda oldu\u011funuzdan emin olun.<\/li>\n<li>Sisteminizde JDK\u00a0<em><strong>8<\/strong><\/em>\u00a0kurulu oldu\u011fundan emin olun, <a href=\"https:\/\/docs.sonarqube.org\/display\/SONAR\/Requirements#Requirements-Prerequisite\">SonarQube<\/a>, JRE Java environment&#8217;\u0131 tam olarak kurmad\u0131\u011f\u0131 i\u00e7in JDK y\u00fcklemeyi \u00f6nermi\u015f. Java versiyonu \u00f6\u011frenmek i\u00e7in Terminal uygulamas\u0131na \u201c<em><strong>java -version<\/strong><\/em>\u201d yazabilirsiniz.<\/li>\n<\/ul>\n<p>SonarQube&#8217;\u00fc y\u00fcklemek i\u00e7in:<\/p>\n<p>1-SonarQube&#8217;\u00fc a\u015fa\u011f\u0131daki y\u00f6ntemlerle sisteminize y\u00fckleyebilirsiniz.<\/p>\n<ul>\n<li>MacOS paket y\u00f6netici program\u0131 olan\u00a0<a href=\"https:\/\/brew.sh\/\">Homebrew<\/a>\u00a0ile kurabilirsiniz. Terminale a\u015fa\u011f\u0131daki komutlar\u0131 yazarak hem SonarQube Server hem de analiz arac\u0131n\u0131 kurabilirsiniz.<em><strong>brew install sonar<\/strong><\/em><br \/>\n<em><strong>brew install\u00a0sonar-scanner<\/strong><\/em><\/li>\n<li>SonarQube&#8217;\u00fc Docker Image ile de kullanabilirsiniz. Bu y\u00f6ntem bu yaz\u0131n\u0131n kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r. Bunun i\u00e7in <a href=\"https:\/\/github.com\/docker-library\/docs\/tree\/master\/sonarqube\">\u015furaya<\/a>\u00a0g\u00f6z atabilirsiniz.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Homebrew sizin i\u00e7in gerekli paketleri (dependencies) y\u00fckleyecektir. Y\u00fckleme bittikten sonra taray\u0131c\u0131n\u0131zdan <strong>localhost:9000\/\u00a0<\/strong>adresine gidin.\u00a0<em><strong>9000<\/strong><\/em>, SonarQube&#8217;\u00fcn bu versiyonunda kullan\u0131lan varsay\u0131lan porttur.<\/p>\n<p><strong>localhost:9000\/<\/strong> adresine gitti\u011finizde sayfa bulunamad\u0131 hatas\u0131 al\u0131rsan\u0131z SonarQube Server&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. Terminal&#8217;e &#8220;<em><strong>sonar status<\/strong><\/em>&#8221; yazarsan\u0131z \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 anlayabilir, &#8220;<em><strong>sonar start<\/strong><\/em>&#8221; yazarak da \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1295 aligncenter\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4.png?w=300\" alt=\"\" width=\"300\" height=\"161\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4.png 1366w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4-300x161.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4-1024x548.png 1024w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonar_setup_4-768x411.png 768w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p>SonarQube kurulumunu art\u0131k tamamlad\u0131k. SonarQube Server 6.5 versiyonunda varsay\u0131lan oturum bilgileri:<\/p>\n<ul>\n<li><strong>Kullan\u0131c\u0131 Ad\u0131:<\/strong>\u00a0admin<\/li>\n<li><strong>\u015eifre<\/strong>: admin<\/li>\n<\/ul>\n<h2>SonarQube&#8217;\u00fc Launch Daemons Olarak Belirleme<\/h2>\n<p>Bir \u00f6nceki <a href=\"https:\/\/metehantoksoy.com\/2017\/11\/20\/macos-sierra-uzerine-jenkins-kurulumu\/\">yaz\u0131mda<\/a> LaunchDaemons ve LaunchAgents konusuna de\u011finmi\u015ftim. SonarQube&#8217;\u00fcn sistem ba\u015flang\u0131c\u0131nda \u00e7al\u0131\u015fmas\u0131 i\u00e7in LaunchDaemon olarak eklenmesi gerekir. Bunun i\u00e7in Terminal&#8217;den:<\/p>\n<blockquote><p><strong>sudo cp\u00a0\/usr\/local\/Cellar\/sonarqube\/6.5\/homebrew.mxcl.sonarqube.plist \/Library\/LaunchDaemons<\/strong><\/p><\/blockquote>\n<p>komutunu \u00e7al\u0131\u015ft\u0131rarak SonarQube&#8217;\u00fc LaunchDaemon olarak belirleyebilirsiniz. Path i\u00e7erisinde bulunan versiyonu kurdu\u011funuz versiyonla de\u011fi\u015ftirmeyi ve sisteminizi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<p>Bu yaz\u0131 SonarQube&#8217;\u00fcn\u00a0<strong>6.5<\/strong> s\u00fcr\u00fcm\u00fc ile yaz\u0131lm\u0131\u015ft\u0131r. Farkl\u0131 versiyonlarda ekran g\u00f6r\u00fcnt\u00fcler ve yap\u0131lmas\u0131 gereken i\u015flemler farkl\u0131l\u0131k g\u00f6sterebilir. Sonraki yaz\u0131larda SonarQube&#8217;\u00fc \u00f6zelle\u015ftirme, proje olu\u015fturma ve analiz sonu\u00e7lar\u0131n\u0131 de\u011ferlendirme konular\u0131 \u00fczerine\u00a0 devam edece\u011fiz. Sormak istedi\u011finiz bir soru\u00a0olursa bu yaz\u0131n\u0131n alt\u0131na yorum yazabilir veya <a href=\"mailto:metehantoksoy@gmail.com\">e-posta\u00a0<\/a>adresimden bana ula\u015fabilirsiniz.<\/p>\n<p>Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015fmek dile\u011fiyle. Takipte kal\u0131n!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba.\u00a0Bu yaz\u0131da DevOps s\u00fcrecinde kullan\u0131lan ara\u00e7lardan biri olan SonarQube\u2019\u00fcn macOS Sierra \u00fczerine kurulumu konusu\u00a0\u00fczerinde duraca\u011f\u0131z. SonarQube Nedir? SonarQube (eski ad\u0131yla Sonar)\u00a0Continious Integration (S\u00fcrekli Entegrasyon\u00a0\u2013 CI) s\u00fcrecinde kodu analiz ederek buglar\u0131, code smell&#8217;leri (k\u00f6t\u00fc kod?) ve olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131 20&#8217;nin \u00fczerindeki dilde (Java, Android, C#, PHP, Javascript Objective-C, Swift vb.) bulan ve raporlayan a\u00e7\u0131k kaynak kodlu &hellip; <a href=\"https:\/\/metehantoksoy.com\/?p=1259\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;macOS Sierra \u00dczerine SonarQube Kurulumu&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[66,72,73,74,94,128,160,230,232,233,234,235],"class_list":["post-1259","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-ci","tag-code-analysis","tag-continuous-inpection","tag-continuous-integration","tag-docker-sonarqube","tag-homebrew","tag-mac","tag-sierra","tag-sonar","tag-sonar-runner","tag-sonar-scanner","tag-sonarqube"],"jetpack_featured_media_url":"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/sonarqube_logo.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/1259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1259"}],"version-history":[{"count":0,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/1259\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/media\/1304"}],"wp:attachment":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}