±¾ÎÄÊǵÚÈýƪ,µÚһƪ³ÖÐø¼¯³ÉÖ®Jenkins+Gitlab¼ò½é
[Ò»]£¬µÚ¶þƪÊÇ£º³ÖÐø¼¯³ÉÖ®Jenkins+GitlabʵÏÖ³ÖÐø¼¯³É
[¶þ]
Sonar½éÉÜ
Sonar ÊÇÒ»¸öÓÃÓÚ´úÂëÖÊÁ¿¹ÜÀíµÄ¿ª·Åƽ̨¡£Í¨¹ý²å¼þ»úÖÆ£¬Sonar
¿ÉÒÔ¼¯³É²»Í¬µÄ²âÊÔ¹¤¾ß£¬´úÂë·ÖÎö¹¤¾ß£¬ÒÔ¼°³ÖÐø¼¯³É¹¤¾ß¡£Óë³ÖÐø¼¯³É¹¤¾ß£¨ÀýÈç Hudson/Jenkins
µÈ£©²»Í¬£¬Sonar ²¢²»ÊǼòµ¥µØ°Ñ²»Í¬µÄ´úÂë¼ì²é¹¤¾ß½á¹û£¨ÀýÈç FindBugs£¬PMD µÈ£©Ö±½ÓÏÔʾÔÚ
Web Ò³ÃæÉÏ£¬¶øÊÇͨ¹ý²»Í¬µÄ²å¼þ¶ÔÕâЩ½á¹û½øÐÐÔÙ¼Ó¹¤´¦Àí£¬Í¨¹ýÁ¿»¯µÄ·½Ê½¶ÈÁ¿´úÂëÖÊÁ¿µÄ±ä»¯£¬´Ó¶ø¿ÉÒÔ·½±ãµØ¶Ô²»Í¬¹æÄ£ºÍÖÖÀàµÄ¹¤³Ì½øÐдúÂëÖÊÁ¿¹ÜÀí¡£
ÔÚ¶ÔÆäËû¹¤¾ßµÄÖ§³Ö·½Ã棬Sonar ²»½öÌṩÁË¶Ô IDE µÄÖ§³Ö£¬¿ÉÒÔÔÚ
EclipseºÍ IntelliJ IDEA ÕâЩ¹¤¾ßÀïÁª»ú²é¿´½á¹û£»Í¬Ê± Sonar »¹¶Ô´óÁ¿µÄ³ÖÐø¼¯³É¹¤¾ßÌṩÁ˽ӿÚÖ§³Ö£¬¿ÉÒԺܷ½±ãµØÔÚ³ÖÐø¼¯³ÉÖÐʹÓÃ
Sonar¡£
´ËÍ⣬Sonar µÄ²å¼þ»¹¿ÉÒÔ¶Ô Java ÒÔÍâµÄÆäËû±à³ÌÓïÑÔÌṩ֧³Ö£¬¶Ô¹ú¼Ê»¯ÒÔ¼°±¨¸æÎĵµ»¯Ò²ÓÐÁ¼ºÃµÄÖ§³Ö¡£
Sonar²¿Êð
[root@linux-node1
~]# yum install -y java-1.8.0
[root@linux-node1 ~]# c d /usr/local/src
Èí¼þ°üÎÒÃÇͨ¹ýwget»òÕßÏÂÔØ£¬ rzÉÏ´«µ½·þÎñÆ÷
#Èí¼þ°üÏÂÔØ£ºhttps://sonarsource.bintray.com /Distribution/
sonarqube/ sonarqube-5.6.zip
[root@linux-node1 src]# unzip sonarqube -5.6.zip
[root@linux-node1 src]# mv sonarqube-5.6 /usr/local/
[root@linux-node1 src]# ln -s /usr/local/ sonarqube-5.6/
/ usr/local/sonarqube |
SonarµÄÏà¹ØÏÂÔØºÍÎĵµ¿ÉÒÔÔÚÏÂÃæµÄÁ´½ÓÖÐÕÒµ½£ºhttp://www.sonarqube.org/downloads/¡£ÐèҪעÒâ×îаæµÄSonarÐèÒªÖÁÉÙJDK
1.8¼°ÒÔÉϰ汾¡£
ÉÏÆªÎÄÕÂÎÒÃÇÒѾ¿ÉÒԳɹ¦µÄʹÓÃgit½øÐÐÀÈ¥£¬SonarµÄ¹¦ÄܾÍÊÇÀ´¼ì²é´úÂëÊÇ·ñÓÐBUG¡£³ýÁ˼ì²é´úÂëÊÇ·ñÓÐbug»¹ÓÐÆäËûµÄ¹¦ÄÜ£¬±ÈÈç˵£ºÄãµÄ´úÂë×¢ÊÍÂÊÊǶàÉÙ£¬´úÂëÓÐһЩ½¨Ò飬±àдÓï·¨µÄ½¨Òé¡£ËùÒÔÎÒÃǽÐÖÊÁ¿¹ÜÀí
Sonar»¹¿ÉÒÔ¸ø´úÂë´ò·Ö£¬²¢ÇÒÒýÓÃÁ˼¼ÊõÕ¬µÄ¹¦ÄÜ£¨¸æËßÄãÓÐºÜ¶àµØ·½Ã»¸Ä£©
Sonar²¿Êð
[root@linux-node1
~] # yum install -y java-1.8.0
[root@linux-node1 ~] # cd /usr/local/src
Èí¼þ°üÎÒÃÇͨ¹ýwget»òÕßÏÂÔØ£¬ rzÉÏ´«µ½·þÎñÆ÷
#Èí¼þ°üÏÂÔØ£º https://sonarsource.bintray.com/ Distribution/
sonarqube/ sonarqube-5.6.zip
[root@linux-node1 src] # unzip sonarqube-5.6.zip
[root@linux-node1 src] # mv sonarqube-5.6 /usr/local/
[root@linux-node1 src] # ln -s /usr/local/ sonarqube-5.6/
/usr/local/sonarqube |
×¼±¸SonarÊý¾Ý¿â
Èç¹ûûÓÐÊý¾Ý¿âÇëÖ´ÐÐyum install -y mariadb mariadb-server
[root@linux-node1
~] # systemctl start mariadb
[root@linux-node1 ~] # systemctl enable mariadb
Created symlink from /etc/ systemd/system/multi
-user.target.wants/ mariadb.service to /usr/ lib/systemd/
system/ mariadb.service.
[root@linux-node1 ~]# mysql_secure_installation
[root@linux-node1 ~]# mysql -uroot -p123456 |
ÌØ±ðÌáʾ£º

image_1b4i40r9q13m916p9 jqke68au39.png-106.4kB
sonarºÃÏñ²»Ö§³Ömysql 5.5£¬ËùÒÔÈç¹û¿´ÈÕÖ¾³öÏÖÒÔÉÏerror
Çë°²×°mysql5.6 »òÕ߸ü¸ß°æ±¾
http://blog.csdn.net/ onothing12345/
article/details/49910087
Ö´ÐÐsqlÓï¾ä
mysql> CREATE
DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost'
IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%'
IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES; |
ÅäÖÃSonar
[root@linux-node1
~]# cd /usr/local/sonarqube/conf/
[root@linux-node1 conf]# ls
sonar.properties wrapper.conf |
±àдÅäÖÃÎļþ£¬ÐÞ¸ÄÊý¾Ý¿âÅäÖÃ
[root@linux-node1
conf ] # vim sonar.properties
#ÎÒÃÇÖ»ÐèҪȥÅäÖÃÎļþÀïÃæÐÞ¸ÄÊý¾Ý¿âµÄÈÏÖ¤¼´¿É
14 sonar.jdbc.username =sonar #Êý¾Ý¿âÓû§
15 sonar.jdbc.password= sonar@pw #Êý¾Ý¿âÃÜÂë
23 sonar.jdbc.url= jdbc:mysql://localhost:3306/
sonar?useUnicode= true&character Encoding
=utf8&rewriteBatchedStatements =true&useConfigs
=maxPerformance |
ÅäÖÃJava·ÃÎÊÊý¾Ý¿âÇý¶¯(¿ÉÑ¡)
ĬÈÏÇé¿öSonarÓÐ×Ô´øµÄǶÈëµÄÊý¾Ý¿â£¬ÄÇôÄãÈç¹ûʹÓÃÀàÊÇOracleÊý¾Ý¿â£¬±ØÐëÊÖ¶¯¸´ÖÆÇý¶¯Àൽ${SONAR_HOME}/extensions/jdbc-driver/oracle/Ŀ¼Ï£¬ÆäËüÖ§³ÖµÄÊý¾Ý¿âĬÈÏÌṩÁËÇý¶¯¡£ÆäËüÊý¾Ý¿âµÄÅäÖÿÉÒԲο¼¹Ù·½Îĵµ£º
http://docs.sonarqube.org/ display/HOME/
SonarQube+Platform
Æô¶¯Sonar
Äã¿ÉÒÔÔÚSonarµÄÅäÖÃÎļþÀ´ÅäÖÃSonar Web¼àÌýµÄIPµØÖ·ºÍ¶Ë¿Ú£¬Ä¬ÈÏÊÇ9000¶Ë¿Ú¡£
[root@linux-node1
conf]# vim sonar.properties
99 #sonar.web.host=0.0.0.0
106 #sonar.web.port=9000 |
Æô¶¯ÃüÁîÈçÏ£º
[root@linux-node1
~]# /usr/local/sonarqube/bin/linux -x86-64/sonar.sh
start
Starting SonarQube...
Started SonarQube. |
Èç¹ûÓÐʲôÎÊÌâ¿ÉÒÔ¿´Ò»ÏÂÈÕÖ¾ [/usr/local/sonarqube/
logs/sonar.log]
¼ì²éÊÇ·ñÓÐÏàÓ¦µÄ¶Ë¿Ú

#¶Ë¿ÚÊÇ9000Ŷ£¡
WebµÇ½£ºIP:9000

Ìáʾ£º
sonar¸újenkinsÀàËÆ£¬Ò²ÊÇÒÔ²å¼þΪÖ÷
sonar°²×°²å¼þÓÐ2ÖÖ·½Ê½£ºµÚÒ»ÖÖ½«²å¼þÏÂÔØÍê´æ·ÅÔÚsonarµÄ²å¼þĿ¼£¬µÚ¶þÖÖʹÓÃweb½çÃæÀ´Ê¹Óð²×°
´æ·Å²å¼þ·¾¶[/usr/local /sonarqube/ extensions/plugins/]
°²×°ÖÐÎIJå¼þ
µÇ½£ºÓû§Ãû£ºadmin ÃÜÂ룺admin




ÐèÒªÖØÆô²Å»áÉúЧ
ÉúЧºóÈçÏÂͼ£º

ÎÒÃÇÔÚ°²×°Ò»¸öphpÓïÑÔ

ÎÂܰÌáʾ£ºÈç¹ûÏÂÔØ²»ÏÂÀ´ÎÒÃÇÖ±½ÓÈ¥github½øÐÐÏÂÔØ£¬ÒòΪÎÒÃÇÕâ¸ö²å¼þ¶¼ÊÇʹÓÃwget½øÐÐÏÂÔØµÄ

ÎÒÃÇÏÖÔÚÖ»ÄÜʹÓÃjavaµÄjar°üºÍphp£¬ÒòΪÎÒÃÇÖ»°²×°ÁËjavaºÍphpµÄÓïÑÔ²å¼þ¡£Èç¹ûÏëʹÓÃPythonµÄ³ÌÐò£¬¾ÍÐèÒª°²×°PythonµÄÓïÑÔ²å¼þ
Sonar ²å¼þ--->ÓïÑÔ²å¼þ £¨·ÖÎöʲôÓïÑÔ£¬Äã¾ÍÐèÒª°²×°Ê²Ã´ÓïÑԵIJå¼þ£©
Sonarͨ¹ýSonarQube Scanner£¨É¨ÃèÆ÷£©À´¶Ô´úÂë½øÐзÖÎö
¹Ù·½Îĵµ £ºhttp://docs.sonarqube.org/ display/SCAN/Analyzing
+with+SonarQube+Scanner
ÏÂÔØÉ¨ÃèÆ÷²å¼þ
[root@linux-node1
~]# wget https://sonarsource.bintray.com/ Distribution/s
onar-scanner-cli/ sonar- scanner-2.8.zip
[root@linux-node1 ~]# unzip sonar-scanner -2.8.zip
[root@linux-node1 ~]# mv sonar-scanner -2.8 /usr/local/
[root@linux-node1 ~]# ln -s /usr/local/ sonar-scanner-2.8/
/usr/local/sonar-scanner |
ÎÒÃÇÒª½«É¨ÃèÆ÷ºÍsonar¹ØÁªÆðÀ´
[root@linux-node1
~] # cd /usr/local/sonar-scanner
[root@linu x-node1 sonar-scanner] # ls
bin conf lib
[root@linux-node1 sonar-scanner] # cd conf/
[root@linux-node1 conf]# ls
sonar-scanner.properties
[root@linux-node1 conf] # vim sonar-scanner.properties
sonar.host.url = http://localhost:9000 #sonarµØÖ·
sonar.sourceEncoding= UTF-8 #×Ö·û¼¯
sonar.jdbc.username= sonar #Êý¾Ý¿âÕ˺Å
sonar.jdbc.password= sonar@pw #Êý¾Ý¿âÃÜÂë
sonar.jdbc.url= jdbc:mysql://localhost:3306/sonar?useUnicode
=true& characterEncoding= utf8 #Êý¾Ý¿âÁ¬½ÓµØÖ·
#´ò¿ª×¢Êͼ´¿É |
ÎÒÃÇÏÖÔÚÐèÒªÕÒÒ»¸ö´úÂë½øÐзÖÎö¡£
sonar²å¼þÌṩÁËÒ»¸ö´úÂëµÄ¿â
github:https://github.com/ SonarSource/sonar-examples
ÎÒÃÇÏÂÔØÈí¼þ°ü£ºhttps://github.com /SonarSource/
sonar-examples /archive/master.zip
½âѹ
[root@linux-node1
src] # unzip sonar-examples-master.zip
[root@linux-node1 php] # cd sonar-examples- master/projects/languages/php
[root@linux-node1 php] # cd php-sonar-runner-unit-tests/
[root@linux-node1 php-sonar-runner -unit-tests]#
ll
total 8
-rw-r--r-- 1 root root 647 Dec 14 09:57 README.md
drwxr-xr-x 2 root root 51 Dec 14 09:57 reports
-rw-r--r-- 1 root root 346 Dec 14 09:57 sonar-
project.properties
drwxr-xr-x 3 root root 31 Dec 14 09:57 src
drwxr-xr-x 2 root root 25 Dec 14 09:57 tests
#ÕâÀï¾ÍÊÇPHPµÄĿ¼ |
ÅäÖÃÎļþ½âÊÍ£º
Èç¹ûÄãÏëÈÃÎÒɨÃ裬¾ÍÐèÒªÔÚ´úÂë·¾¶Ï·ÅÒ»¸öÅäÖÃÎļþ
[root@linux-node1
php -sonar-runner-unit-tests] # cat sonar-project.
properties
sonar.projectKey =org.sonarqube: php-ut-sq-scanner
#Key
sonar.projectName= PHP :: PHPUnit :: SonarQube
Scanner #ÕâÀïµÄÃû³Æ»áÏÔʾÔÚÒ»»áµÄweb½çÃæÉÏ
sonar.projectVersion=1.0 #°æ±¾£¬ÕâÀïµÄ°æ±¾Ò»»áÒ²»áÏÔʾÔÚweb½çÃæÉÏ
sonar.sources=src #Èí¼þ°ü´æ·Å·¾¶
sonar.tests=tests
sonar.language=php #ÓïÑÔ
sonar.sourceEncoding=UTF-8 #×ÖÌå
# Reusing PHPUnit reports
sonar.php.coverage.reportPath = reports/phpunit.coverage.xml
sonar.php.tests.reportPath =reports/phpunit.xml |
#Ò²¾ÍÊÇ˵ÔÚÏîÄ¿ÀïÃæ±ØÐëÓÐÕâ¸öÅäÖÃÎļþ²Å¿ÉÒÔ½øÐÐɨÃè
ɨÃè
#Ìáʾ£ºÐèÒªÔÚÏîÄ¿ÎļþÀïÃæ½øÐÐÖ´ÐÐ
[root@linux-node1
php -sonar-runner-unit-tests] # /usr/local/sonar-
scanner/bin/sonar-scanner
INFO: Scanner configuration file: /usr/local/sonar
-scanner/conf/sonar -scanner.properties
INFO: Project root configuration file: /usr/local/src/sonar-examples-
master/projects/languages /php/php-sonar-runner
-unit-tests/sonar -project.properties
INFO: SonarQube Scanner 2.8
INFO: Java 1.8.0_111 Oracle Corporation (64-bit)
INFO: Linux 3.10.0- 514.2.2.el7.x86_64 amd64
INFO: User cache: /root/ .sonar/cache
INFO: Load global repositories
INFO: Load global repositories (done) | time=211ms
WARN: Property 'sonar.jdbc.url' is not supported
any more. It will be ignored. There is no longer
any DB connection to the SQ database.
WARN: Property 'sonar.jdbc.username' is not supported
any more. It will be ignored. There is no longer
any DB connection to the SQ database.
WARN: Property 'sonar.jdbc.password' is not supported
any more. It will be ignored. There is no longer
any DB connection to the SQ database.
INFO: User cache: /root/ .sonar/cache
INFO: Load plugins index
INFO: Load plugins index (done) | time=3ms
INFO: Download sonar-csharp -plugin-5.0.jar
INFO: Download sonar-java -plugin-3.13.1.jar
INFO: Download sonar-l10n -zh-plugin-1.11.jar
INFO: Plugin [l10nzh] defines 'l10nen' as base
plugin. This metadata can be removed from manifest
of l10n plugins since version 5.2.
INFO: Download sonar-scm -git-plugin-1.2.jar
INFO: Download sonar-php -plugin-2.9.1.1705.jar
INFO: Download sonar-scm-svn -plugin-1.3.jar
INFO: Download sonar-javascript -plugin-2.11.jar
INFO: SonarQube server 5.6
INFO: Default locale: " en_US", source
code encoding: "UTF-8"
INFO: Process project properties
INFO: Load project repositories
.................................................
................................................. |
Ìáʾ£ºÎÒÃÇʲô¶¼²»Ö¸¶¨¾Í»áÔÚµ±ÃæÄ¿Â¼ÏÂɨÃèsonar-project.propertiesÎļþ£¬¸ù¾ÝÅäÖÃÎļþ½øÐÐɨÃ蹤×÷¡£É¨ÃèÖ®ºóÎÒÃÇÔÚweb½çÃæÉϾͿÉÒÔ¿´µ½´úÂëµÄɨÃè½á¹û
ÕâÀïµÄÃû×Ö£¬°æ±¾ ¶¼ÊÇÔÚsonar -project.propertiesÎļþÖж¨ÒåµÄ

ÖÊÁ¿ãаïÎÒÃÇÉ趨ºÃÒ»¸öãÐÖµ£¬³¬¹ýÏàÓ¦µÄãÐÖµ¾ÍËãÓÐbug

ΪÁËÈÃjenkins¿ÉÒÔÔÚ¹¹½¨ÏîÄ¿µÄʱºòÖ´ÐÐsonar£¬ËùÒÔÎÒÃÇÐèÒªÔÚjenkinsÉϰ²×°²å¼þ

ÏÖÔھͿÉÒÔ½øÐÐÅäÖã¬ÈÃjenkinsºÍsonar½áºÏÔÚÒ»Æð¡£ÕâÑùÎÒÃǹ¹½¨ÏîÄ¿µÄʱºò¾Í»á½øÐдúÂë¼ì²â


µã»÷±£´æ

ÅäÖÃ

±à¼ÎÒÃǵÄÏîÄ¿£¬Ñ¡Ôñ×îÏ·š£ÕÒµ½¹¹½¨

¶ÔPHPÎļþ½øÐи´ÖÆ
[root@linux-node1
php-sonar-runner -unit-tests]# cat /usr/local/src/sonar-examples
-master/projects/languages/ php/php-sonar -runner-unit-tests/
sonar-project.properties
sonar.projectKey =org.sonarqube:php-ut -sq-scanner
sonar.projectName =PHP :: PHPUnit :: SonarQube
Scanner
sonar.projectVersion=1.0
sonar.sources=src
sonar.tests=tests
sonar.language=php
sonar.sourceEncoding =UTF-8
# Reusing PHPUnit reports
sonar.php.coverage.reportPath =reports/phpunit.coverage.xml
sonar.php.tests.reportPath =reports/phpunit.xml |

Analysis properties ·ÖÎöµÄ²ÎÊý
ÌîдÍê±Ïºó£¬ÎÒÃǵã»÷±£´æ

ÎÒÃÇÑ¡ÔñÁ¢¼´¹¹½¨

Ìáʾ£º´ËʱµÄSonarQubeÊÇÎÞ·¨µã»÷µÄ
µã»÷Console Output¿ÉÒԲ鿴¹¹½¨Êä³öµÄÄÚÈÝ

#Ìáʾ£ºÖ»ÒªÃ»ÓÐerror¾Í¿ÉÒÔ

¹¹½¨Íê³Éºó£¬ÎÒÃÇ·¢ÏÖÕâÀïµÄSonarQube¿ÉÒÔµã»÷£¬ÎÒÃǵã»÷SonarQube¾Í»áÁ´½Óµ½192.168.56.11:9000
¾ÍÊÇ´úÂë²é¿´Æ÷µÄµØÖ·

ÏÖÔÚÎÒÃÇÒѾ×öµ½ÁË¿ÉÒÔÔÚgitÉϽøÐÐÀÈ¡´úÂë¡£²¢½øÐмì²â
ÎÒÃÇ»¹¿ÉÒÔÅäÖÃÒ»¸ö¹¹½¨Ê§°Ü·¢ËÍÓÊÏ䣺

ÔÚÎÒÃÇÏîÄ¿ÀïÃæÉèÖù¹½¨ºó²Ù×÷£¬Ñ¡ÔñE-mail Notification

ÎÂܰÌáʾ£ºÊ¹ÓÃ163ÓÊÏä·¢Ë͵Ä֪ͨ±»163·þÎñÆ÷ÍË»ØÁË£¬Òò´ËÎÒ½«ÉèÖÃÔÚjenkinsµÄÓÊÏä¸Ä³ÉÁËQQÓÊÏä
QQ£ºÓÊÏäÐèÒªÉèÖÃÈçÏ£º

**1¡¢ÐèÒª¿ªÆôPOPE3/SMTP·þÎñ
2¡¢ÔÚjenkinsÉÏÅäÖõÄÃÜÂëÎÒÃÇÐèÒªµã»÷Éú³ÉÊÚȨÂë½øÐÐʹÓÃ**
QQÓʼþĬÈÏ»áÊÕµ½ÈçÏÂÌáʾ£º

µ±Ôٴι¹¼þ³É¹¦Ê±£¬ÓʼþÄÚÈÝÈçÏ£º

|