SonarQube ÊÇÒ»¸ö¿ªÔ´µÄ´úÂëÖÊÁ¿¹ÜÀíϵͳ£¬Ëü¿ÉÒÔͨ¹ýʹÓòå¼þ»úÖÆÓë
eclipse ºÍ JIRA µÈÆäËûÍⲿ¹¤¾ß¼¯³É£¬´Ó¶øÊµÏÖÁ˶ԴúÂëµÄÖÊÁ¿µÄÈ«Ãæ×Ô¶¯»¯·ÖÎöºÍ¹ÜÀí¡£±¾ÎÄÊ×ÏÈÌÖÂÛÁËSonarQube
3.6 µÄ»ù±¾¹¤×÷ÔÀíÓë°²×°Á÷³Ì£»Æä´Î·ÖÎöÁ˲ÉÓà SonarQube 3.6 µÄÈýÖÖ²»Í¬·½·¨À´¶Ô²»Í¬ÓïÑԺͼܹ¹µÄÏîÄ¿½øÐдúÂëÖÊÁ¿¹ÜÀíµÄ»ù±¾Á÷³Ì£»×îºó¶Ô±ÊÕßÔÚʵ¼ÊʹÓùý³ÌÖÐÓöµ½µÄÎÊÌâ½øÐÐÁË×ܽᣬ²¢¸ø³öÁËÏàÓ¦µÄ½â¾ö·½°¸¡£
¸ÅÊö
Ëæ×Å IT ÐÐÒµÖÐÈí¼þ²úÆ·µÄÍÆ³Â³öУ¬¿Í»§¶ÔÓÚÈí¼þ²úÆ·µÄÒªÇóÒ²Ô½À´Ô½¸ß£¬Òò´ËÈçºÎ¸ßÖÊÁ¿µÄ¹ÜÀíÈí¼þ´úÂ룬¼°Ê±µØ¶Ô´úÂëÖÊÁ¿½øÐзÖÎö²¢¸ø³öºÏÀíµÄ½â¾ö·½°¸¾Í³ÉΪÁ˵±Ï±ØÐëÒª½â¾öµÄÒ»¸öÎÊÌâ¡£Óëµ±½ñÖÚ¶àµÄ´úÂëÖÊÁ¿¹ÜÀí¹¤¾ßÏà±È£¬SonarQube
¸ü¾ßÓÐÌØÉ«ºÍ¾ºÕùÁ¦£¬ÆäÓÅÊÆÖ÷ÒªÌåÏÖΪ£ºËüÊÇÒ»¸ö¿ªÔ´µÄ´úÂëÖÊÁ¿¹ÜÀíϵͳ£¬Ö§³Ö 25+ ÖÖÓïÑÔ£¬¿ÉÒÔͨ¹ýʹÓòå¼þ»úÖÆÓë
eclipse ºÍ JIRA µÈÆäËûÍⲿ¹¤¾ß¼¯³É£¬´Ó¶øÊµÏÖÁ˶ԴúÂëµÄÖÊÁ¿µÄÈ«Ãæ×Ô¶¯»¯·ÖÎöºÍ¹ÜÀí¡£
±¾ÎÄÊ×ÏÈÌÖÂÛÁË SonarQube3.6 µÄ»ù±¾¹¤×÷ÔÀíÓë°²×°Á÷³Ì£»Æä´Î·ÖÎöÁËʹ²ÉÓÃ
SonarQube3.6 µÄÈýÖÖ²»Í¬·½·¨À´¶Ô²»Í¬ÓïÑԺͼܹ¹µÄÏîÄ¿½øÐдúÂëÖÊÁ¿¹ÜÀíµÄ»ù±¾Á÷³Ì£»×îºó¶Ô×Ô¼ºÔÚʵ¼ÊʹÓùý³ÌÖÐÓöµ½µÄÎÊÌâ½øÐÐÁË×ܽᣬ²¢¸ø³öÁËÏàÓ¦µÄ½â¾ö·½°¸¡£
±¾ÎÄÖ÷ÒªÌÖÂÛÈçϼ¸¸ö·½ÃæÄÚÈÝ£º
SonarQube µÄ¹¤×÷ÔÀí½éÉÜ
SonarQube3.6 µÄ°²×°
SonarQube3.6 ´úÂëÖÊÁ¿·ÖÎö
´úÂëÖÊÁ¿·ÖÎö½á¹û½âÎö
SonarQube3.6 ʵ¼ÊʹÓÃÖÐÓöµ½µÄÎÊÌâ¼°½â¾ö·½°¸
SonarQube µÄ¹¤×÷ÔÀí½éÉÜ
SonarQube ²¢²»ÊǼòµ¥µØ½«¸÷ÖÖÖÊÁ¿¼ì²â¹¤¾ßµÄ½á¹û£¨ÀýÈç FindBugs£¬PMD
µÈ£©Ö±½ÓÕ¹ÏÖ¸ø¿Í»§£¬¶øÊÇͨ¹ý²»Í¬µÄ²å¼þËã·¨À´¶ÔÕâЩ½á¹û½øÐÐÔÙ¼Ó¹¤£¬×îÖÕÒÔÁ¿»¯µÄ·½Ê½À´ºâÁ¿´úÂëÖÊÁ¿£¬´Ó¶ø·½±ãµØ¶Ô²»Í¬¹æÄ£ºÍÖÖÀàµÄ¹¤³Ì½øÐÐÏàÓ¦µÄ´úÂëÖÊÁ¿¹ÜÀí¡£
SonarQube ÔÚ½øÐдúÂëÖÊÁ¿¹ÜÀíʱ£¬»á´Óͼ 1 ËùʾµÄÆß¸öγ¶ÈÀ´·ÖÎöÏîÄ¿µÄÖÊÁ¿¡£

ͼ 1. ÖÊÁ¿Î³¶È
SonarQube ¿ÉÒÔÖ§³Ö 25+ ÖÖ±à³ÌÓïÑÔ£¬Õë¶Ô²»Í¬µÄ±à³ÌÓïÑÔÆäËùÌṩµÄ·ÖÎö·½Ê½Ò²ÓÐËù²»Í¬£º
¶ÔÓÚËùÓÐÖ§³ÖµÄ±à³ÌÓïÑÔ£¬SonarQube ¶¼ÌṩԴÁË´úÂëµÄ¾²Ì¬·ÖÎö¹¦ÄÜ£»
¶ÔÓÚÄ³Ð©ÌØ¶¨µÄ±à³ÌÓïÑÔ£¬SonarQube ÌṩÁ˶ԱàÒëºó´úÂëµÄ¾²Ì¬·ÖÎö¹¦ÄÜ£¬±ÈÈç
java ÖÐµÄ class file ºÍ jar ºÍ C# ÖÐµÄ dll file µÈ£»
¶ÔÓÚÄ³Ð©ÌØ¶¨µÄ±à³ÌÓïÑÔ£¬SonarQube »¹¿ÉÒÔÌṩ¶ÔÓÚ´úÂëµÄ¶¯Ì¬·ÖÎö¹¦ÄÜ£¬±ÈÈç
java ºÍ C# Öеĵ¥Ôª²âÊÔµÄÖ´Ðеȡ£
SonarQube ƽ̨µÄÕûÌå¼Ü¹¹Èçͼ 2 Ëùʾ£º

ͼ 2. SonarQube µÄ·þÎñ¼Ü¹¹
Ô¶³Ì¿Í»§»ú¿ÉÒÔͨ¹ý¸÷ÖÖ²»Í¬µÄ·ÖÎö»úÖÆ£¬´Ó¶ø½«±»·ÖÎöµÄÏîÄ¿´úÂëÉÏ´«µ½ SonarQube
server ²¢½øÐдúÂëÖÊÁ¿µÄ¹ÜÀíºÍ·ÖÎö£¬SonarQube »¹»áͨ¹ý Web API ½«·ÖÎöµÄ½á¹ûÒÔ¿ÉÊÓ»¯¡¢¿É¶ÈÁ¿µÄ·½Ê½Õ¹Ê¾¸øÓû§¡£
SonarQube3.6 µÄ°²×°
Èí¼þ¼°Ó²¼þµÄÒªÇó
SonarQube3.6 µÄ°²×°Í¨³£ÐèÒªÂú×ãÒ»¶¨µÄÈíÓ²¼þÌõ¼þ£¬¾ßÌåÒªÇóÈçÏÂËùʾ£º
1. Server 񻂗
Web server ×îÉÙÐèÒª 500MB µÄÄÚ´æ¿Õ¼ä£¬ÍƼöÄÚ´æ¿Õ¼ä´óС
2GB¡£Sonar ÔÚ½øÐдúÂëÖÊÁ¿·ÖÎöʱ£¬Í¨³£´óԼÿ 1 KLOC ÐèÒª´æ´¢ 350KB ×óÓÒµÄÊý¾Ý£¬ËùÒÔÒª¾¡Á¿Îª
SonarQube3.6 µÄ web server Ìṩ´óµÄÄÚ´æ¡£
2. Database 񻂗
¾¡¹Ü SonarQube3.6 ±¾Éí×Ô´øÇ¶ÈëµÄ Derby Êý¾Ý¿â£¬µ«ÊÇÓÉÓÚ
Derby ±È½Ï¼òµ¥£¬ËùÒÔÔÚÉú²ú»·¾³ÖÐÇ¿ÁÒÍÆ¼ö°²×°ÏàÓ¦µÄÆóÒµ°æÊý¾Ý¿â£¬SonarQube3.6 Ö§³ÖµÄÊý¾Ý¿â°üÀ¨£º
MySQL 5.x+¡¢Oracle10g+¡¢PostgreSQL 9.x ºÍ MS SQLServer
2005 and 2008£¬ÍƼöʹÓà MySQL¡£Ä¿Ç° SonarQube3.6 »¹²»Ö§³Ö DB2£¬µ«ÔÚºóÐø°æ±¾ÖпÉÄÜ»áÌṩ¶Ô
DB2 µÄÖ§³Ö¡£
3. Browser 񻂗
SonarQube3.6 Ö§³Ö´ó¶àÊýµÄä¯ÀÀÆ÷£¬°üÀ¨ Firefox¡¢Internet
Explorer 7.x and 8.x and chromed µÈ£¬ÍƼöʹÓà Firefox¡£
°²×°²½Öè
SonarQube3.6 µÄ°²×°°ü¿ÉÒÔ´Ó SonarQube µÄ¹Ù·½ÍøÕ¾
(http://www.sonarqube.org/) ÏÂÔØ¡£×ܵÄÀ´Ëµ£¬ËüµÄ°²×°¹ý³Ì¿ÉÒÔ·ÖΪÒÔÏÂÁù¸ö²½Ö裺
1. »ñÈ¡¹«Ë¾µÄ·¨ÂÉÊÚȨ
±¾²½ÖèÖ÷Ҫȡ¾öÓÚ¹«Ë¾µÄ¹æ¶¨£¬Èç¹û¹«Ë¾¶ÔÓÚÔÚ±¾¹«Ë¾»úÆ÷Éϰ²×°µÄÈí¼þÓз¨ÂÉÒªÇó£¬ÄÇô¾¡¹Ü
SonarQube ÊÇ¿ªÔ´µÄ£¬µ«ÊÇÒ²»¹ÊÇÒª»ñµÃ¹«Ë¾Ïà¹Ø·¨Âɲ¿ÃŵÄÊÚȨ£¬È»ºóÔÙ½øÐа²×°¡£
2. ´´½¨Êý¾Ý¿â
´´½¨Êý¾Ý¿âʱ£¬°´ÕÕÏàÓ¦Êý¾Ý¿âµÄ°²×°ËµÃ÷½øÐа²×°¼´¿É£¬°²×°³É¹¦ºó£¬ÐèÒªÊÖ¶¯´´½¨Ò»¸öÃûΪ¡°sonarqube¡±µÄÓû§ºÍÒ»¸ö
empty schema --¡°sonarqube¡±£¬²¢¸³Óè¸ÃÓû§ÔÚÏàÓ¦ schema É쵀 create¡¢update
ºÍ delete ¶ÔÏóµÄȨÏÞ£¬Í¬Ê±Êý¾Ý¿âµÄ×Ö·û¼¯É趨Ϊ¡°UTF-8¡±£¬Ê¾ÀýµÄ sql Óï¾äÈçÏ£º
µã»÷²é¿´´úÂëÇåµ¥
3. °²×° Sonar µÄ·þÎñÆ÷
½«ËùÏÂÔØµÄ SonarQube3.6 ѹËõ°ü½âѹ¼´¿É£¬×¢ÒâÒªÓëËùÔڵIJÙ×÷ϵͳƽ̨ƥÅä¡£
4. ÅäÖÃÊý¾Ý¿â
Èç¹ûûÓÐʹÓà sonarQube3.6 ×Ô´øµÄ derby Êý¾Ý¿â£¬Ôò´ËʱÐèÒª±à¼
sonarqube3.6 ½âѹĿ¼ \conf\sonar.properties Îļþ£¬¶ÔÊý¾Ý¿âµÄ·ÃÎʲÎÊý½øÐÐÅäÖá£
Êý¾Ý¿âÅäÖÃÏîºÍÅäÖÃʾÀýÈçͼ 3 ºÍͼ 4 Ëùʾ£º

ͼ 3. Sonar.properties
ÎļþÖеÄÊý¾Ý¿âÅäÖÃÏî

ͼ 4. Sonar.properties
ÎļþÖÐµÄ MySQL Êý¾Ý¿âÅäÖÃ
Èç¹ûÊÇ Oracle Êý¾Ý¿â£¬ÔòÐèÒª½« JDBC µÄ driver ¿½±´µ½
sonarqube3.6 ½âѹĿ¼ \extensions\jdbc-driver\[your database]¡£´ËÍ⣬¶ÔÓÚÆäËûËùÖ§³ÖµÄÊý¾Ý¿âµÄ
driver£¬sonarqube Ò²ÒѾÌṩ¡£
5. Æô¶¯ SonarQube3.6 ·þÎñÆ÷
Æô¶¯ SonarQube3.6 ·þÎñÆ÷µÄ·½·¨È¡¾öÓÚËùʹÓõݲװƽ̨ºÍ webserver¡£
³£¼ûµÄÆô¶¯·½Ê½ÓÐͼ 5 ËùʾµÄ¼¸ÖÖ£º

ͼ 5. SonarQube Æô¶¯·½Ê½
6. ²å¼þÏÂÔØÓë°²×°
SonarQube3.6 ·þÎñÆ÷³É¹¦Æô¶¯ºó£¬µÇ½ĬÈ쵀 webserver:?
IP:9000/ £¬ÆäÖÐ IP Ϊ sonarqube3.6 °²×°µÄ·þÎñÆ÷ÍøÂçµØÖ·£¬Óû§ÃûºÍÃÜÂëΪĬÈϵÄ
admin/admin¡£µÇ½³É¹¦ºóµã»÷ configuration ²Ëµ¥°´Å¥£¬È»ºóÑ¡Ôñ update center
½øÐвå¼þµÄÏÂÔØÓë°²×°£¬Èçͼ 6 Ëùʾ£º

ͼ 6. Plugin ÏÂÔØÓë°²×°
×¢Ò⣺Èç¹û sonarqube server ËùÔڵĻúÆ÷²»ÄÜ·ÃÎÊÍâÍø£¬ÄÇô´Ëʱ¾ÍÐèÒªÏÈÔÚÁíһ̨Äܹ»·ÃÎÊÍâÍøµÄ»úÆ÷ÉÏÏÂÔØËùÐèµÄËùÓвå¼þ£¬È»ºó½«ÏÂÔØµÄ²å¼þ¿½±´µ½
sonarqube server ËùÔÚ»úÆ÷µÄ sonarqube3.6 ½âѹĿ¼ \extensions\plugins
Ŀ¼ÄÚ£¬È»ºóÖØÆô Sonarqube3.6¡£ÏÂÔØ Sonarqube ²å¼þµÄ¹Ù·½µØÖ·Îª£ºhttp://docs.codehaus.org/display/SONAR/Plugin+Library/£¬ÏÂÔØÊ±Ðè×¢Òâ²å¼þ°å±¾Óë
sonarqube3.6 µÄ¼æÈÝÎÊÌâ¡£
SonarQube3.6 ´úÂëÖÊÁ¿·ÖÎö
µ±Ê¹Óà SonarQube3.6 ¶Ôijһ¸öÏîÄ¿½øÐдúÂëÖÊÁ¿¹ÜÀíʱ£¬Í¨³£¿ÉÒÔ²ÉÓÃÈýÖÖ²»Í¬µÄ·½·¨À´·¢Æð´úÂë·ÖÎö£¬·Ö±ðΪ
Analyzing with SonarQube Runner¡¢£¬Analyzing with SonarQube
Ant Task ºÍ Analyzing with Maven ·½·¨¡£ÕâÈýÖÖ·½·¨µÄÖ÷񻂿±ðÊÇ , ËüÃÇ·Ö±ðÊÊÓÃÓÚ²»Í¬¼Ü¹¹ºÍ×éÖ¯ÐÎʽµÄÏîÄ¿£¬²¢ÇÒÆäÏàÓ¦µÄÅäÖÃÎļþµÄд·¨Ò²²»¾¡Ïàͬ¡£
ÏÂÃæ½«·Ö±ð½éÉÜÕâÈýÖÖ·½Ê½¡£
Analyzing with SonarQube Runner
ͨ³£ÎÒÃÇ»áÍÆ¼öʹÓà SonarQube Runner ÕâÖÖ·½Ê½£¬ÒòΪ¸Ã·½·¨ÊÊÓÃÓÚËùÓв»Í¬¼Ü¹¹µÄÏîÄ¿£¬°üÀ¨Ã»ÓÐʹÓÃÈκÎÔ´´úÂë¹ÜÀí¹¤¾ßµÄÏîÄ¿ÐÎʽ£¬ÒÔ¼°Ê¹Óø÷ÖÖ²»Í¬´úÂë¹ÜÀí¹¤¾ß£¨SVN¡¢Git¡¢ClearCase
µÈ£©ºÍ±àÒ빤¾ß£¨ant£¬maven£©µÄÏîÄ¿ÐÎʽ£¬Ëü¶¼Äܹ»ÊÊÓá£ÔÚʹÓø÷½Ê½½øÐзÖÎöʱ²½ÖèÈçÏ£º
1. Ê×ÏÈÐèÒªÏÂÔØÓë SonarQube3.6 Server ¼æÈÝµÄ sonar-runner
¿Í»§¶Ë²¢¶ÔÆä½øÐнâѹ£»ÏÂÔØµØÖ·Îªhttp://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.3.zip
2. ÔÚ±»·ÖÎöÏîÄ¿´úÂëµÄ¸ùĿ¼Ï£¬´´½¨²¢ÅäÖà sonar-project.properties£¬ÄÚÈÝÈçͼ
7 Ëùʾ£º

ͼ 7. Sonar-project.properties
ÎļþʾÀý
ͼ 7 ÖÐµÄ sonar.projectName ΪÏîÄ¿ÔÚ sonar
server ÉÏÏÔʾµÄÃû³Æ£¬ÆäÖµÒªÇóΨһ¡£sonar.source ÊÇÓÃÓÚÖ¸¶¨´ý·ÖÎöµÄ´úÂëλÖõġ£sonar.language
ÓÃÓÚÖ¸¶¨´ý·ÖÎöµÄÏîÄ¿´úÂëÓïÑÔ¡£Èç¹ûÏîÄ¿°üº¬¶à¸öÄ£¿é£¬Ôò¸ÃÅäÖÃÎļþÓ¦°´ÕÕͼ 8 Ëùʾ±à¼£º

ͼ 8. ¶àÄ£¿éÏîÄ¿µÄ Sonar-project.properties
ʾÀý
3. ÔÚ½âѹµÄ soanr-runner ¿Í»§¶ËµÄ sonar-runner\config
Ŀ¼Ï£¬±à¼ sonar-runner.properties Îļþ , ʾÀýÈçͼ 9 Ëùʾ£º

ͼ 9. Sonar-runner.properties
ʾÀý
Çë×¢Ò⣬ͼ 7¡¢Í¼ 8 ÒÔ¼°Í¼ 9 ÖеÄÏà¹ØÅäÖÃÏî ( Èç host.url
ºÍ jdbc.url µÈ ) ¶¼ÒªÓëͼ 4 µÄ sonar.properties ÎļþÖеÄÏà¹ØÅäÖÃÏî±£³ÖÒ»Ö¡£
4. ´ò¿ªÃüÁîÐУ¬ÔÚ±»·ÖÎöµÄÏîĿĿ¼Ï , ÔËÐÐ sonar-runner
ÃüÀí·ÖÎöÏîÄ¿´úÂë¡£
Analyzing with SonarQube Ant Task
±¾·½·¨Ö÷ÒªÊÊÓÃÓÚʹÓà Ant ¹¤¾ß½øÐй¹½¨¡¢±àÒë¡¢´ò°üºÍ²âÊÔµÄÏîÄ¿£¬Ê¹ÓÃ
Ant Task ·ÖÎö´úÂëʱ£¬²½ÖèÈçÏ£º
1. ÏÂÔØ SonarQube Ant Task ²¢°²×°£¬ÏÂÔØµØÖ·ÈçÏ£º
http://repository.codehaus.org/org/codehaus/sonar-plugins/sonar-ant-task/2.1/sonar-ant-task-2.1.jar
2. ÔÚ±»·ÖÎöÏîÄ¿´úÂëµÄ¸ùĿ¼Ï£¬´´½¨²¢ÅäÖà build.xml Îļþ¡£Ê¾ÀýÈçͼ
10 Ëùʾ£º

ͼ 10. Build.xml ÅäÖÃʾÀý
Build.xml ÖеÄÏà¹ØÅäÖÃÏî ( Èç jdbc.username
ºÍ jdbc.url µÈ ) ÒªÓëͼ 4 ËùʾµÄ sonar.properties ÎļþÖеÄÏà¹ØÅäÖÃÏî±£³ÖÒ»Ö£»Í¬Ê±¿ÉÒÔ¿´³ö£¬ÔÚ
build.xml ÎļþÖмȰüº¬Á˱»·ÖÎöÏîÄ¿´úÂëµÄÏà¹ØÐÅÏ¢£¬Ò²°üº¬ÁËÆäËùÁ¬½ÓµÄ¶ÔÓ¦ SonarQube
Server µÄÐÅÏ¢¡£
3. ÔÚÃüÁîÐÐÖУ¬Çл»µ½´úÂë¸ùĿ¼£¬Ê¹ÓÃÃüÁî ¡°ant sonar¡±½øÐдúÂë·ÖÎö¡£
Analyzing with Maven
µ±ÏîĿʹÓà Maven ¹¤¾ß¹ÜÀíºÍ¹¹½¨Ê±£¬Ôò¸ÃÏîÄ¿¾ÍÊÊÓÃÓÚ±¾·½·¨¡£Ê¹ÓÃ
Maven ·ÖÎö´úÂëʱ£¬²½ÖèÈçÏ£º
1. ÏÂÔØ¡¢°²×°²¢ÅäÖà Maven£¬ÅäÖÃÎļþΪ setting.xml£¬ÅäÖÃÈçͼ
11 Ëùʾ£º

ͼ 11. Setting.xml ÅäÖÃʾÀý
Setting.xml ÖеÄÏà¹ØÅäÖÃÏî ( Èç host.url ºÍ jdbc.url
µÈ ) ÒªÓëͼ 4 ËùʾµÄ sonar.properties ÎļþÖеÄÏà¹ØÅäÖÃÏî±£³ÖÒ»Ö£¬Ö÷ÒªÓÃÓÚÅäÖÃÆäËùÁ¬½ÓµÄ
SonarQube ·þÎñÆ÷µÄÐÅÏ¢¡£
2. ÔÚ´ý·ÖÎöÏîÄ¿´úÂëµÄ¸ùĿ¼Ï£¬´´½¨²¢ÅäÖà prom.xml Îļþ£¬Ê¾ÀýÈçͼ
12 Ëùʾ£¬¸ÃÅäÖÃÎļþÓÃÓÚÉ趨´ø·ÖÎö´úÂëµÄÏà¹ØÐÅÏ¢£¬°üÀ¨´úÂëĿ¼µÈ¡£

ͼ 12. Prom.xmlÅäÖÃʾÀý
3. ´ò¿ªÃüÁîÐд°¿Ú£¬Çл»µ½ÏîÄ¿µÄ¸ùĿ¼£¬È»ºóÖ´ÐС°mvn sonar:sonar¡±À´·ÖÎöÏîÄ¿´úÂëµÄÖÊÁ¿¡£
С½á
×ܵÄÀ´ËµÕâÈýÖÖ·½Ê½Óв»Í¬µÄÕë¶ÔÐÔ£¬¾ßÌåʹÓÃÄÄÒ»ÖÖ·½Ê½Òª¸ù¾ÝÏîÄ¿µÄʵ¼ÊÇé¿öÀ´Áé»îµÄÅжϡ£
SonarQube3.6 ´úÂëÖÊÁ¿·ÖÎö½á¹û½âÎö
µ±ÏîÄ¿´úÂë±»³É¹¦·ÖÎöÍê³Éºó£¬SonarQube Server »á½«·ÖÎöµÄ½á¹û´æ´¢ÔÚÏàÓ¦µÄÊý¾Ý¿âÖУ¬²¢ÒÔ±¨¸æµÄÐÎʽ½«·ÖÎö½á¹ûÔÚ
webserver ÖÐչʾ¸øÓû§¡£
ÏÂÃæ½«ÒÔÒ»¸öÕæÊµÏîÄ¿´úÂëµÄ·ÖÎö½á¹ûΪÀý£¬¶ÔÆä¸÷Ïî·ÖÎöÖ¸±ê½øÐмòÒª½éÉÜ¡£

ͼ 13.·ÖÎö½á¹ûʾÀý-01
ͼ 13 Ϊ SonarQube3.6 µÄ Project Dashboard£¬ËüÊDz鿴ÈÎÒâÏîÄ¿·ÖÎö½á¹ûµÄÈë¿Ú£¬Õ¹Ê¾Á˸ÃÏîÄ¿¸÷ÏîÖ¸±ê×ܵķÖÎöÊý¾Ý½á¹û£¬ÆäÖаüÀ¨ÏîÄ¿µÄÖØ¸´ÂÊ£¬×¢Ê͵ıÈÀý£¬µ¥Ôª²âÊÔ¸²¸ÇÂÊÒÔ¼°
Issue µÄ±ÈÀýµÈ¡£Í¨¹ý Dashboard ¾Í¿ÉÒÔ¶ÔÏîÄ¿×ÜÌåµÄÖÊÁ¿Çé¿öÓÐÒ»¸öÈ«¾ÖÐÔµÄÈÏʶ¡£
Ñ¡Ôñͼ 13 Öеĸ÷Ïî·ÖÎöÖ¸±ê£¬¾Í¿ÉÒÔ¾ßÌåµÄÈ¥²é¿´¸ÃÏîÄ¿ÔÚÕâÒ»Ö¸±êÉϵÄÏêϸÇé¿ö¡£
ÏÂÃæÒÔÖØ¸´ÂÊºÍ Issue ΪÀý£¬¶ÔÆä·ÖÎö½á¹û½øÐнâÎö¡£
1. Ñ¡Ôñͼ 13 ÖеÄÖØ¸´ÂÊÖ¸±ê£¬½«»áµÃµ½Í¼ 14 ËùʾµÄ¹ØÓÚÖØ¸´´úÂëµÄÏêϸ·ÖÎö½á¹û£º

ͼ 14. ·ÖÎö½á¹ûʾÀý-02
ͼ 14 ÖеÄÇøÓò A չʾÁËÕû¸öÏîÄ¿ÖвúÉú´úÂëÖØ¸´µÄËùÓÐÄ£¿é¼°ÆäÖØ¸´µÄ´úÂëÐÐÊý¡£Ñ¡ÔñÇøÓò
A ÖеÄÈÎһij¿é£¬ÔÚÇøÓò B ÖÐÔò½«ÏÔʾ¸ÃÄ£¿éϲúÉú´úÂëÖØ¸´µÄËùÓÐÎļþ£»Ñ¡ÔñÇøÓò B ÖеÄijһÎļþ£¬ÔòÔÚÏ·½ÇøÓò
C ÖлáÏÔʾÏîÄ¿ÖÐÓë¸ÃÎļþ²úÉú´úÂëÖØ¸´µÄËùÓÐÎļþ£¬Í¬Ê±»¹»áÏÔʾ¸ÃÎļþÏàÓ¦µÄÖØ¸´´úÂëµÄÄÚÈÝ¡£ÕâÑùµÄ·ÖÎö½á¹û£¬¿ÉÒÔÓÐЧµØÖ¸µ¼ÏîÄ¿×é³ÉÔ±½øÐÐÏîÄ¿´úÂëÓÅ»¯²¢½µµÍÖØ¸´ÂÊ¡£
2. Ñ¡Ôñͼ 13 ÖÐµÄ Issues Ö¸±ê£¬»áµÃµ½Í¼ 15 ËùʾµÄ¹ØÓÚÏîÄ¿
Issue µÄÏêϸ·ÖÎö½á¹û£º

ͼ 15. ·ÖÎö½á¹ûʾÀý-03
ͼ 15 ÖеÄÇøÓò A չʾÁËÕû¸öÏîÄ¿Öв»Í¬ÑÏÖØ³Ì¶ÈµÄ Issues ÊýÁ¿£»ÇøÓò
B ÔòÏÔʾÁËÏîÄ¿´úÂë¾ßÌåËùÎ¥·´µÄ¸÷ÖÖ±àÂë¹æÔòÒÔ¼°Î¥·´¹æÔòµÄ´ÎÊý£»µã»÷ÇøÓò B ÖÐÏàÓ¦µÄ¹æÔò£¬ÔÚÇøÓò C
ÖоͻáÏÔʾ¸ÃÏîÄ¿ÖÐÎ¥·´ÏàÓ¦¹æÔòµÄËùÓÐÄ£¿é¼°ÆäÎ¥·´¹æÔòµÄ´ÎÊý£»Ñ¡ÔñÇøÓò C ÖеÄijһģ¿é£¬ÔÚÇøÓò D ÖоͻáÏÔʾ¸ÃÄ£¿éÄÚÎ¥·´¹æÔòµÄËùÓÐÎļþ£»Èç¹ûÒª²é¿´´úÂëÎļþµ½µ×ÈçºÎÎ¥·´ÁËijһ¹æÔò£¬Ö»ÐèÔÚÇøÓò
D Öеã»÷ÏàÓ¦µÄÎļþ£¬Ôò»áÏÔʾÈçͼ 16 ËùʾµÄÏêϸÇé¿ö¡£
ÔÚͼ 16 ÖУ¬¿ÉÒÔ¿´µ½Î¥·´ÏàÓ¦¹æÔòµÄ¾ßÌå´úÂ룬ÓúìÉ«±ê³ö£»µã»÷ËùÎ¥·´µÄ¾ßÌ广Ôò£¬SonarQube
Ôò»á½âÊÍ´úÂëÎ¥·´¹æÔòµÄ¾ßÌåÔÒò£¬²¢¸ø³öÏàÓ¦µÄ½â¾ö·½°¸ÒÔ¹©²Î¿¼£¬Õâ¶ÔÓÚÏîÄ¿×é³ÉÔ±¶¨Î»ÎÊÌâºÍ½â¾öÎÊÌâ¶¼ÓкܴóµÄ°ïÖú¡£

ͼ 16. ·ÖÎö½á¹ûʾÀý-04
Æäʵ SonarQube »¹ÌṩÁ˺ܶàÆäËû·½ÃæµÄÖÊÁ¿Î¬¶È·ÖÎö£¬È縴ÔÓ¶È£¬²âÊÔ¸²¸ÇÂʵȣ¬ÕâÀï¾Í²»ÔÙÌÖÂÛÆä¾ßÌåµÄ²ÎÊýϸ½ÚÁË¡£±¾²¿·ÖÖ¼ÔÚ´ÓÕûÌåÉ϶ԴúÂëµÄÖÊÁ¿·ÖÎö½á¹û½øÐиÅÀ¨£¬²¢½éÉÜÈçºÎ²é¿´ÏàÓ¦µÄÖÊÁ¿·ÖÎö½á¹û£¬¶ø¹ØÓÚ¾ßÌåÈçºÎÀûÓø÷¸ö·ÖÎö²ÎÊýµÄÖµÀ´Î¬»¤¡¢¸ÄÉÆ´úÂëÖÊÁ¿£¬»áÔÚºóÐøÏµÁÐÖÐÓë´ó¼Ò·ÖÏí¡£
SonarQube3.6 ʵ¼ÊʹÓÃÖÐÓöµ½µÄÎÊÌâ¼°½â¾ö·½°¸
ÔÚʹÓà SonarQube3.6 ·ÖÎö´úÂëÖÊÁ¿Ê±£¬Í¨³£»áÓöµ½ÒÔÏÂÈý¸öÎÊÌ⣬ÔÚʵ¼ÊʹÓÃÖÐҪעÒ⣺
1. find-bug.jar °æ±¾ÎÊÌâ
ÓÉÓÚÔÚ sonarQube3.3.1 ֮ǰ£¬ ÆäËùĬÈÏʹÓÃµÄ find-bug
µÄ°æ±¾Îª 2.0.0£¬¸Ã°æ±¾»áµ¼Ö´úÂë·ÖÎöʱ³öÏÖʱ¼ä×Ö·û´®µÄ¸ñʽ½âÎö´íÎó£¬Òò´ËÔÚ°²×° sonarQube3.6
ºó£¬Îñ±ØÒªÈ·±£ÆäËù°²×°µÄ²å¼þ find-bug.jar µÄ°æ±¾Îª 2.0.1¡£
2. ÈÏÖ¤ÊÚȨ´íÎó
ÓÉÓÚÔÚ sonarqube3.4 ֮ǰµÄ°æ±¾ÖУ¬Á¬½Ó sonar server
ÊDz»ÐèÒª authorized£¬¶øÔÚ 3.6 °æ±¾ÖÐÔòÐèÒª authorized£¬ÊÚȨÎÊÌâ¿ÉÒÔͨ¹ýÁ½ÖÖ·½·¨½â¾ö£º
ÔÚ sonar.properties ºÍ sonar-runner.properties
ÖÐͬʱָ¶¨ÏàͬµÄÓû§ÃûºÍÃÜÂë¡££¨sonar.login= sonar.password=£©
ÔÚ sonar.properties ºÍ sonar-runner.Properties
·Ö±ðÇ¿ÖÆÉ趨²»ÐèÒª½øÐзÃÎÊÊÚȨ£¬¼´ sonar.forceAuthentication=false
3. Ô´´úÂëµÄ±àÂë¸ñʽ´íÎó
ÓÉÓÚ find-bug.jar 2.0.1 ºÍ sonarQube3.6
server µÄĬÈϱàÂë¸ñʽΪ GBK£¬Òò´Ë±ØÐëÈÏÕæµØ´¦ÀíÔ´´úÂëµÄ±àÂë¸ñʽ£¨¼´ sonar.sourceEncoding=UTF-8/GBK/......£©£¬±ÜÃâÒò±àÂë¸ñʽ²»¼æÈݶøµ¼ÖµÄÎÊÌâ¡£
½áÊøÓï
´úÂëÖÊÁ¿¹ÜÀí¶ÔÌá¸ßÏîÄ¿ÖÊÁ¿ÒâÒåÖØ´ó¡£±¾ÎĽéÉÜÁË SonarQube µÄ¹¤×÷ÔÀí£¬²¢´ÓÏîĿʵսµÄ½Ç¶È½²½âÁËʹÓÃ
SonarQube3.6 ½øÐÐÏîÄ¿´úÂëÖÊÁ¿¹ÜÀíµÄÁ÷³ÌºÍ×¢ÒâÊÂÏϣÍûÄܹ»¸øÊ¹Óà SonarQube µÄ¶ÁÕßÌṩÓмÛÖµµÄ²Î¿¼¡£
|