Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¾²Ì¬´úÂë¼à¿ØÆ½Ì¨¡ª¡ªSonar »·¾³´î½¨
 
  3792  次浏览      28
 2018-4-23 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ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ÅÊǾ²Ì¬´úÂë¼à¿ØÆ½Ì¨×îÖØÒªµÄµØ·½,µÈÎÒʵ¼ùºÃ,ÔÙ·ÖÏí°É,ÎÒÏÖÔÚÖ»Êǰѻ·¾³ÅäÖúÃÁË¡£

   
3792 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì