±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚtesterhome.com£¬±¾ÎÄÖ÷ҪĿµÄÊÇÏêϸ½éÉÜÒ»ÏÂsonar»·¾³µÄ´î½¨,ÍøÉÏÓкܶàµÄ×ÊÁϽéÉÜ»·¾³ÅäÖÃ,±ÊÕßÔÚLinuxºÍMac»·¾³´î½¨¹ý³ÌÖж¼²È¹ý¿Ó,±ã¼Ç¼һ¶þ¡£ |
|
ÒýÎÄ
sonarÊÇÒµ½ç¿ªÔ´µÄ´úÂëÖÊÁ¿¼à¿ØµÄ¿ªÔ´Æ½Ì¨,֮ǰÔÚjenkins mac slaveÉÏÅäÖÃÁËoclint,µ«ÊDZ¨±íÔÚjenkinsÄÚÏÔʾ²»ÊǺÜÓѺÃ,ΪÁËÕæÕýÈÿª·¢Ð¡»ï°éÓõÄ˳ÊÖ,ÐèÒªÅäÖÃsonarƽ̨¡£
Ŀ¼
1¡¢¼òµ¥½éÉÜÔÀí
2¡¢sonar»·¾³ÅäÖÃ
3¡¢sonar-runner»·¾³ÅäÖÃ
4¡¢¼¯³ÉÖ´ÐÐÉú³É¿ÉÊÓ»¯±¨±í
5¡¢²Î¿¼
1¡¢½éÉÜÔÀí
¿ªÌâÌá¹ý,ÎÒ֮ǰµÄoclintÊÇͨ¹ýjenkins µ÷¶ÈÖ´ÐÐÔÚÎÒÃÇÅäÖõļ¸Ì¨mac slaveÉϵÄ,oclintÉú³ÉµÄ±¨¸æÊÇpmd¸ñʽ,ͨ¹ýjenkinsµÄ²å¼þPbulish
PMD analysis results½âÎöºÍչʾ¡£
µ«Êǵ±¿ª·¢Ïë¿´ÄÄЩissueµÄʱºò,¾Í»áºÜÂé·³,²»ÊǺÜÖ±¹Û,ÐèÒªµã»÷µ½jenkinsµÄjobÀïÃæÈ¥²éÕÒ¡£ÎªÁË·½±ã¿ª·¢Ð¡»ï°é,²éÔÄ×ÊÁÏÖªµÀÁËsonar¡£
ÍøÉ϶ÔsonarÓзdz£ÏêϸµÄ½éÉÜ,ÎҾͲ»×¸Êö,ÎÒÀí½âµÄsonar¾ÍÊÇÀàËÆÓÚÎÒÓÃflaskдµÄÒ»¸ö·þÎñ¶Ë,¿ÉÒÔÓÃÀ´´æ´¢Êý¾ÝºÍչʾÊý¾Ý,sonar-runner¾ÍÀàËÆÓÚrequestsµÄÒ»¸öpostÇëÇó,Ëü½«oclint¼ì²éÉú³ÉµÄPMD¸ñʽµÄXMLÎļþ·¢Ë͸øsonar,È»ºósonar½«½ÓÊÕµÄÊý¾Ý´æÈë
mysql»òÕ߯äËûÀàÐ͵ÄÊý¾Ý¿â,²¢ÇÒչʾ¡£

sonar¼òµ¥ÔÀí
¶ÔÓÚjenkins´¥·¢µÄjobÎÒÊÇͨ¹ýjenkins ÖÐgerritµÄ´¥·¢»úÖÆ,µ±¿ª·¢change-mergeµ½¿ª·¢·ÖÖ§µÄʱºò´¥·¢jobÖ´ÐС£
2¡¢sonar»·¾³ÅäÖÃ
sonar»·¾³ÅäÖ÷ÖÁ½²½,sonarºÍmysql.
¡¾1¡¿sonar
ÔÚÕâÀïÎÒÔÚmacºÍlinux»·¾³¶¼³¢ÊԴÁËsonar¡£
sonarÏÂÔØµØÖ·Îª:https://www.sonarqube.org/downloads/
ÏÂÔØºÃÖ®ºó,ÊÇÒ»¸ö.tgzѹËõÎļþ,½âѹ֮ºó,ÕâÀïlinuxºÍmacÅäÖû·¾³ÊÇÒ»ÖµÄûÓÐʲô²»Í¬,·ÅÔÚÈÎÒâÎļþ¼ÐλÖö¼¿ÉÒÔ¡£¼ÓÈë·ÅÔÚ/opt/sonar/ÏÂÃæ¡£
Æô¶¯sonar·þÎñÃüÁîΪ:
## linuxÆô¶¯
./bin/linux-x86-4/sonar.sh start
## macÆô¶¯
./bin/macosx-universal-64/sonar.sh start |
Æô¶¯Ö®Ç°,ÎÒ¸ü¸ÄÁËconf/sonar.properties,ÓÉÓÚÎÒÔÚlinuxÉÏÆô¶¯Á˼¸¸öflask·þÎñÒѾռÓÃÁ˺ܶà¶Ë¿Ú¡£
ÎÒ¸ü¸ÄÁËÕâЩÏîÄ¿:
sonar.web.host=0.0.0.0
sonar.web.port=9007
sonar.search.port=9011 |
È»ºó·Ö±ðÖ´ÐÐÆô¶¯ÃüÁî,´ò¿ªhttp://127.0.0.1:9007,¾Í¿ÉÒÔÕý³£½øÈësonar½çÃæ¡£µ«ÊÇÔÚ×îÏÂÃæÓкì×ÖÌáʾÄÇÊÇÒòΪûÓÐÁ¬½ÓÊý¾Ý¿â¡£
ÕâÀïÎÒ¸ü¸Äsonar.search.portÊÇÒòΪ,ÎÒ·¢ÏÖĬÈ϶˿Ú9001ÒѾ±»Õ¼ÓÃ,·þÎñÆô¶¯²»ÆðÀ´,±¨´íÌáʾÔÚlogs/ce.log¿´³öÀ´µÄ¡£
¡¾2¡¿mysql
ÕâÀïmacºÍlinuxÓÐÉÔ΢µÄÇø±ð¡£
°²×°ÃüÁî:
## linux ÎÒÍÆ¼örpm¸ñʽ°²×°,ÇÒ°²×°mysql
5.7°æ±¾
1¡¢https://dev.mysql.com/downloads/repo/apt/
ÏÂÔØdev°ü
2¡¢×ª´ælinux,È»ºóÖ´ÐÐ
sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb
groupadd mysql
useradd -r -g mysql mysql
sudo apt-get install libaio-dev
## mac°²×°mysql
brew install mysql |
mysql°²×°ºÃÖ®ºó,Æô¶¯ÃüÁî:
## linux
sudo /etc/init.d/mysql start
## mac
mysql.server start |
ͨ¹ýĬÈÏrootÓû§µÇ¼mysql,mysql -uroot -proot,µÇ¼֮ºó¡£
ÐèÒªÐÂÔösonar databaseÒÔ¼°sonarÓû§¡£
CREATE DATABASE
sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED
BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED
BY 'sonar';
FLUSH PRIVILEGES; |
³É¹¦Ö®ºó,ÖØÆôÒ»ÏÂmysql·þÎñ¡£
¸ü¸Äconf/sonar.propertiesÊý¾Ý¿âµÄÅäÖÃ,ÈÃËüÉúЧ¡£
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc: mysql://localhost:3306/sonar? useUnicode=true&characterEncoding=utf8 &rewriteBatchedStatements=true& useConfigs=maxPerformance |
ÔÙÖØÆôÒ»ÏÂsonar·þÎñ,È»ºóÖØÐµÇ¼http://127.0.0.1:9007,Õý³£Æô¶¯,Ôò¿ÉÒÔ¿´µ½Ò³Ãæ×îµ×¶ËµÄºì×ÖÔ¤¾¯ÌáʾÒѾûÓÐÁË,ÆäʵҲ¿ÉÒÔͨ¹ýlogsÎļþ¼ÐÏÂ,ÈÕÖ¾²é¿´¡£
СÌùÊ¿,ÕâÀïÎÒΪʲôǿµ÷ʹÓÃmysql 5.7µÄ°æ±¾,ÊÇÒòΪÎÒÔÚlinuxϰ²×°µÚÒ»´ÎÊÇÓÃsudo
apt-get install mysql-server,µ¼Ö°²×°µÄ5.5µÄ°æ±¾,ºÍsonar 6.2²»Æ¥Åä¡£
3¡¢sonar-runnerÅäÖÃ
sonar-runnerÀàËÆÓÚÒ»¸ö·¢ÇëÇóµÄÃüÁî,ËüÓ¦¸Ã·ÅÖÃÓÚÖ´ÐÐoclintµÄmac slaveÉÏ¡£
sonar-runnerÏÂÔØÂ·¾¶
½âѹËõÖ®ºó,»·¾³±äÁ¿¿ÉÅäÖÿɲ»ÅäÖÃ,ÎÒ½¨Òé²»ÒªÅäÖÃbash_profile,ÒòΪҪʹµÃbash_profileÉúЧ,jenkinsÐèÒª¸úslave¶Ï¿ªÒ»ÏÂÔÙÖØÁ¬,²ÅÄÜÉúЧ¡£Õâ¶ÔÓÚ³ÖÐø¼¯³É¼¯Èº·þÎñÀ´Ëµ,ÊDz»ºÏÀíµÄ¡£
ҪʹµÃsonar-runnerÄÜÓÐЧʹÓÃ,ÐèÒªÅäÖÃsonar-runner/conf/sonar-runner.properties
sonar.host.url=http://localhost:9007
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admin |
Õâ¸öʱºòÐèÒªÔÚÃüÁîÐÐÑéÖ¤Ò»ÏÂ,¼ÙÉèsonar-runner·ÅÖÃÓÚoptÏÂ,opt/sonar-runner/bin/sonar-runner,Ìáʾ:
SonarQube Runner
2.4
Java 1.8.0_111 Oracle Corporation (64-bit)
Mac OS X 10.12.3 x86_64
INFO: Runner configuration file: /Users/huami/opt/sonar-runner/conf/sonar-runner.properties
INFO: Project configuration file: NONE
INFO: Default locale: "zh_CN", source
code encoding: "UTF-8" |
˵Ã÷sonar-runnerÒѾÅäÖúá£
4¡¢¼¯³ÉÖ´ÐÐÉú³É¿ÉÊÓ»¯±¨±í
¡¾1¡¿ÔÚÖ´ÐÐsonar-runner֮ǰ,ÐèÒªÔÚ·þÎñ¶Ësonar/extensions/plugins/ϼÓÔØÒ»¸öoc¼ì²éjar°ü²å¼þ¡£
sonar-objective-c-plugin-0.5.0-SNAPSHOT.jar²å¼þÏÂÔØµØÖ·
ÏÂÔØºÃÖ®ºó,½«Æäת´æµ½sonar/extensions/plugins/,²¢ÖØÆôÒ»ÏÂsonar·þÎñ¡£
¡¾2¡¿ÐèҪн¨Éú³É»òÕßÔÚÏÂÔØµÄ°üÀïÃæ,½«sonar-project.properties·ÅÈëiOSÏîÄ¿Ö÷Ŀ¼,×îºóÎÒµÄsonar-project.propertiesΪ:
##########################
# Required configuration #
##########################
sonar.projectKey=MiFit
sonar.projectName=MiFit
sonar.projectVersion=1.0
sonar.language=objectivec
# Project description
sonar.projectDescription= Fake description
# Path to source directories ¹¤³ÌÎļþĿ¼
sonar.sources=MiFit
# 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= MiFit.xcodeproj
sonar.objectivec.workspace= MiFit.xcworkspace
# Scheme to build your application
sonar.objectivec.appScheme= MiFit
# Scheme to build and run your tests (comment
following line of you don't have any tests)
##########################
# Optional configuration #
##########################
# Encoding of the source code
sonar.sourceEncoding=UTF-8
sonar.objectivec.oclint.reportPath=lint.xml
sonar.scm.enabled=false
sonar.host.url=http://x.x.x.x:9007 |
Íòʾ㱸,ֻǷ¶«·ç¡£
¡¾3¡¿ÎÒÒѾÔÚiOSÏîĿĿ¼ÏÂÉú³ÉÁËoclintÖ´ÐÐÖ®ºóµÄPMD¸ñʽµÄlint.xml¡£
ΪÁËÑéÖ¤sonar´î½¨µÄûÓÐÎÊÌâ,Ö±½Ócdµ½ÏîÄ¿¸ùĿ¼ÏÂÈ¥Ö´ÐÐsonar-runner½«lint.xml½á¹ûÐÅÏ¢·¢Ë͵½sonar·þÎñ¡£
¼ÙÈçÇ°Ãæ¶¼Õý³£ÅäÖõϰ,´ËʱִÐÐsonar-runner,logÈç¹ûÊÇÕâÑùµÄ
Analysis report
uploaded in 2489ms
11:47:24.701 INFO - ANALYSIS SUCCESSFUL, you can
browse http://x.x.x.x:9007/dashboard/index/MiFit
11:47:24.702 INFO - Note that you will be able
to access the updated dashboard once the server
has processed the submitted analysis report
11:47:24.702 INFO - More about the report processing
at http://x.x.x.x:9007/api/ce/task? id=AVrK7MT-YTb445TpRSn7
11:47:25.577 INFO - Task total time: 24.425 s
INFO: ------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------
Total time: 32.521s
Final Memory: 23M/777M |
¿ÉÒÔÈ¥http://192.168.1.101:9007¿´¿´ÏîĿִÐеļǼÓÐûÓÐÕýÈ·ÉÏ´«ÁË¡£

ÎÒûÓмÓÈë×Ô¼º¶¨ÒåµÄ¹æÔò,ÄDzÅÊǾ²Ì¬´úÂë¼à¿ØÆ½Ì¨×îÖØÒªµÄµØ·½,µÈÎÒʵ¼ùºÃ,ÔÙ·ÖÏí°É,ÎÒÏÖÔÚÖ»Êǰѻ·¾³ÅäÖúÃÁË¡£ |