版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、集成質(zhì)量管理平臺(tái)搭建第一章 Sonar安裝21.1下載sonar21.2安裝sonar21.2.1 JDK安裝配置21.2.2數(shù)據(jù)庫(kù)安裝21.3成功界面31.4配置插件31.4.1插件介紹31.4.2常用的插件:4第二章 Maven安裝52.1下載 Maven52.2配置Maven5第三章 Jenkins安裝53.1安裝Jenkins5第四章 Sonar-Runner安裝64.1下載Sonar-Runner64.2配置Sonar-Runner環(huán)境變量64.3測(cè)試文件的配置64.4應(yīng)用sonar監(jiān)測(cè)代碼質(zhì)量7第五章 環(huán)境集成75.1 Sonar和Jenkins集成75.2 Jenkins系統(tǒng)配置
2、95.3 Jenkins項(xiàng)目配置10第六章 常見錯(cuò)誤146.1 sonar沒有啟動(dòng)146.2 Maven setting.xml配置156.3 文件POM.xml配置166.4 0 files indexd1616第一章 Sonar安裝1.1下載sonar 最新版版本:4.2,穩(wěn)定版:3.7(本人建議下載3.7穩(wěn)定版) 下載地址:/downloads/下載完成之后,要注意一個(gè)問(wèn)題,官方的說(shuō)明是不要安裝在以數(shù)字開頭的目錄中。所以我們就不要解壓在數(shù)字開頭的目錄中。1.2安裝sonar1.2.1 JDK安裝配置這個(gè)不予多說(shuō),最基本的JAVA開發(fā)環(huán)境配
3、置,下載JDK,配置其JAVA_HOME,PATH等。1.2.2數(shù)據(jù)庫(kù)安裝(1)本人是選擇的MySQL,這里要注意的是如果你下載的是免安裝版,直接解壓使用的話,需要配置my.ini。(2)在數(shù)據(jù)庫(kù)中創(chuàng)建新用戶sonar 密碼為sonar 并給用戶賦權(quán)。(用戶和密碼可以自定義,如果自定義需要更改perties配置文件中得sonar.jdbc.username與sonar.jdbc.password,其默認(rèn)的就是sonar)。(3)配置perties文件。a配置啟動(dòng)的http端口:sonar.web.host: localhost(或者
4、你的IP)sonar.web.port: 9000(默認(rèn)是9000,你可以修改,不然會(huì)和Jenkins的端口號(hào)沖突)sonar.web.context: / (三句前本來(lái)被注釋,取消注釋) b取消MySQL連接的注釋,并輸入自己數(shù)據(jù)庫(kù)的url地址,同時(shí)將默認(rèn)的sonar.jdbc.url屏蔽#- MySQL 5.x# Comment the embedded database and uncomment the following line to use MySQLsonar.jdbc.url: jdbc:mysql:/localhost:3306/test?useUnicode=true&a
5、mp;characterEncoding=utf8&rewriteBatchedStatements=true# :mysql是指你要連接的事Mysql數(shù)據(jù)庫(kù),這里我給Sonar的權(quán)限是管理員所以可以用localhost,否則你要使用的你的IP地址,3306是你使用的端口號(hào),test是我測(cè)試時(shí)創(chuàng)建的數(shù)據(jù)庫(kù),你需要改成你自己的數(shù)據(jù)庫(kù)名。# Optional properties sonar.jdbc.driverClassName: com.mysql.jdbc.Driversonar.jdbc.validationQuery: select 1c進(jìn)入bin中,選擇適合自己系統(tǒng),運(yùn)行so
6、nar.sh,如果是windows運(yùn)行bat。運(yùn)行sonar-3.7binwindows-x86-64StartSonar.bat,打開相應(yīng)的網(wǎng)頁(yè):http:/localhost:9000測(cè)試是否配置成功,這里的頁(yè)面鏈接跟前頭的http配置有關(guān)。(第一次運(yùn)行StartSonar.bat,時(shí)需要的時(shí)間較長(zhǎng),請(qǐng)耐心等待,切不可關(guān)閉窗口重新加載,sonar其需要?jiǎng)?chuàng)建一個(gè)和Mysql數(shù)據(jù)庫(kù)相關(guān)的migrating數(shù)據(jù)庫(kù)和表,如果中途退出則創(chuàng)建不成功?。?.3成功界面登陸用戶名和密碼都是admin 1.4配置插件1.4.1插件介紹Sonar支持多種插件,插件的下載地址為:http:/docs.codeh
7、/display/SONAR/Plugin+Library將下載后的插件上傳到$SONAR_HOMEextensionsplugins目錄下,重新啟動(dòng)sonar。sonar默認(rèn)集成了Java Ecosystem插件,該插件是一組插件的合集(1)Java sonar-java-plugin:java源代碼解析,計(jì)算指標(biāo)等(2)Squid sonar-squid-java-plugin:檢查違反Sonar定義規(guī)則的代碼(3)Checkstyle sonar-checkstyle-plugin:使用CheckStyle檢查違反統(tǒng)一代碼編寫風(fēng)格的代碼(4)FindBugs sonar-f
8、indbugs-plugin:使用FindBugs檢查違反規(guī)則的缺陷代碼(5)PMD sonar-pmd-plugin:使用pmd檢查違反規(guī)則的代碼(6)Surefire sonar-surefire-plugin:使用Surefire執(zhí)行單元測(cè)試(7)Cobertura sonar-cobertura-plugin:使用Cobertura獲取代碼覆蓋率(8)JaCoCo sonar-jacoco-plugin:使用JaCOCO獲取代碼覆蓋率1.4.2常用的插件:(1)JavaScript代碼檢查:/display/SONAR/JavaScript
9、+Plugin(2)python代碼檢查:/display/SONAR/Python+Plugin(3)Web頁(yè)面檢查(HTML、JSP、JSF、Ruby、PHP等):/display/SONAR/Web+Plugin(4)xml文件檢查:/display/SONAR/XML+Plugin(5)scm源碼庫(kù)統(tǒng)計(jì)分析:/display/SONAR/SCM+Stats+Plugin(6)文件度量:http:/docs
10、./display/SONAR/Tab+Metrics+Plugin(7)中文語(yǔ)言包:/display/SONAR/Chinese+Pack(8)時(shí)間表顯示度量結(jié)果:/display/SONAR/Timeline+Plugin(9)度量結(jié)果演進(jìn)圖:/display/SONAR/Motion+Chart+Plugin(b)插件配置示例(本段內(nèi)容來(lái)自第二章 Maven安裝2.1下載 Maven最新版:Apache Maven 3.2.1下
11、載地址/download.cgi2.2配置MavenMaven的配置也比較簡(jiǎn)單:MAVEN_HOME= $ Maven.home PATH=% MAVEN_HOME %bin測(cè)試maven是否成功 :mvn v第三章 Jenkins安裝3.1安裝Jenkins下載地址:/content/thank-you-downloading-windows-installerJenkins安裝比較簡(jiǎn)單在這里就不多說(shuō)了,其最主要的就是Jenkins集成Maven和Sonar。3.2安裝后打開http:/localhost:9
12、000/進(jìn)行測(cè)試3.3成功界面:第四章 Sonar-Runner安裝4.1下載Sonar-Runner下載地址:/org/codehaus/sonar-plugins/sonar-runner4.2配置Sonar-Runner環(huán)境變量(1)SONAR_RUNNER_HOME 你的安裝位置(2)Path $SONAR_RUNNER_HOME/bin (Unix) or %SONAR_RUNNER_HOME%/bin(3)修改$SONAR_RUNNER_HOME/conf/perties文件,打開databa
13、se connection, server URL的注釋4.3測(cè)試文件的配置在每個(gè)項(xiàng)目的項(xiàng)目源文件目錄下新建一個(gè)文件名為perties的文件,在文件中輸入以下內(nèi)容:# required metadata# My project-修改成你的項(xiàng)目名稱jectKey=my:jectName=My jectVersion=1.0# path to source directories (required)# srcDir1,srcDir2-修改成你的源文件夾路徑sonar.sources
14、=srcDir1,srcDir2 #通常就填src# path to test source directories (optional)# testDir1,testDir2-修改成你的測(cè)試文件夾路徑 tests=testDir1,testDir2# path to project binaries (optional), for example directory of Java #bytecode# binDir-修改成你的二進(jìn)制文件夾路徑 # binaries=binDir #此為可選項(xiàng),可以不填# path to project libraries (optional)#librar
15、ies=junit.jar #此為可選項(xiàng),可以不填# advanced perty=value4.4應(yīng)用sonar監(jiān)測(cè)代碼質(zhì)量以上配置完成之后,就可以應(yīng)用sonar來(lái)監(jiān)測(cè)代碼質(zhì)量了。(1)先啟動(dòng)sonar用sonar-3.7binwindows-x86-64 StartSonar.bat文件,這時(shí)可以查看sonar-3.7logs sonar.log文件,看是否已經(jīng)啟動(dòng)sonar(2)啟動(dòng)好sonar之后,接著在命令行中切換到項(xiàng)目文件的目錄下,然后輸入sonar-runner,等到運(yùn)行結(jié)束后,進(jìn)入到http:/localhost:9000頁(yè)面,查看代
16、碼的質(zhì)量統(tǒng)計(jì)結(jié)果。需進(jìn)入項(xiàng)目的目錄中:成功時(shí)如圖所示:第五章 環(huán)境集成5.1 Sonar和Jenkins集成5.1.1通過(guò)Maven進(jìn)行集成修改maven的主配置文件($MAVEN_HOME/conf/settings.xml文件或者 /.m2/settings.xml文件),在其中增加訪問(wèn)Sonar數(shù)據(jù)庫(kù)及Sonar服務(wù)地址,添加如下配置:<profile><id>sonar</id><properties><sonar.jdbc.url>jdbc:mysql:/localhost:3306/sonar</sonar.jdbc
17、.url><sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver><sonar.jdbc.username>sonar</sonar.jdbc.username><sonar.jdbc.password>sonar</sonar.jdbc.password><sonar.host.url>http:/localhost:9000</sonar.host.url> <!- Sonar服務(wù)器訪問(wèn)地址 -></prop
18、erties></profile><activeProfiles><activeProfile>sonar</activeProfile></activeProfiles>此處注意sonar.host.url地址應(yīng)根據(jù)sonar部署情況修改同樣,為了避免內(nèi)存溢出,推薦增加內(nèi)存堆棧的大小。設(shè)置MAVEN_OPTS環(huán)境變量:set MAVEN_OPTS=”-Xmx512m -XX:MaxPermSize=256m”使用Sonar(1) 運(yùn)行Sonar服務(wù)器;(2) 通過(guò) mvn sonar:sonar 將代碼注入到Sonar中進(jìn)行分
19、析處理,并將處理結(jié)果以XML的形式保存在數(shù)據(jù)庫(kù)中;(3)通過(guò)瀏覽器訪問(wèn),顯示分析結(jié)果;(4)持續(xù)運(yùn)行Maven構(gòu)建,會(huì)迭代顯示分析結(jié)果;(5)可以顯式指定sonar插件的版本,如下:<project> <build> <plugins> <plugin> <groupId>org.codehaus.sonar</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.5.1</version> </
20、plugin> </plugins> </build></project>(6)可以顯式的將sonar綁定到Maven生命周期中,如下:<plugin> <groupId>org.codehaus.sonar</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.5.1</version> <executions> <execution> <id>sonar&
21、lt;/id> <phase>site</phase> <goals> <goal>sonar</goal> </goals> </execution> </executions></plugin>5.1.2下載sonar jenkins plugin 在jenkins的插件管理中選擇安裝sonar jenkins plugin,該插件可以使項(xiàng)目每次構(gòu)建都調(diào)用sonar進(jìn)行代碼度量。打開Jenkins,選擇系統(tǒng)管理,然后進(jìn)入管理插件,找到sonar plugin,下載安裝。5.2
22、Jenkins系統(tǒng)配置5.2.1 JDK配置5.2.2 sonar runner 配置5.2.3 Maven配置5.2.4 Sonar 配置5.3 Jenkins項(xiàng)目配置進(jìn)入你創(chuàng)建的項(xiàng)目,我這里創(chuàng)建的項(xiàng)目名是scmp,進(jìn)入后,找到左邊的配置,進(jìn)入。5.3.1源碼管理選擇你的源碼來(lái)源,我用的是SVN,選擇 Subversion選擇框,里面要配置你的源碼URL,登錄名和密碼,其中Repository depth選擇infinity,Local module directory是你導(dǎo)出文件的位置,此位置是相對(duì)于Jenkins的,在Jenkins的workspace里。如圖所示:5.3.2
23、Build其中的root Pom選擇是相對(duì)于workspace的,即是在workspace里里面。 如圖:5.3.3 Post Steps如圖操作:選擇Maven targets然后里面的設(shè)置如圖:5.3.4 構(gòu)建后操作添加構(gòu)建后操作步驟:此處只需要填寫下JDK就可以用了,應(yīng)用程序構(gòu)建時(shí)就會(huì)自動(dòng)觸發(fā)Sonar對(duì)代碼的檢查成功效果圖:第六章 常見錯(cuò)誤6.1 sonar沒有啟動(dòng)錯(cuò)誤如下:ERROR Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default-cli) on project scmp:
24、SonarQube server can not be reached at http:/localhost:9000. Please check the parameter 'sonar.host.url'. Connection refused: connect -> Help 1ERROR ERROR To see the full stack trace of the errors, re-run Maven with the -e switch.JENKINS Archiving D:Program FilesJenkinsworkspacescmpscmppo
25、m.xml to com.fnii.scmp/scmp/0.0.1-SNAPSHOT/scmp-0.0.1-SNAPSHOT.pomERROR Re-run Maven using the -X switch to enable full debug logging.ERROR ERROR For more information about the errors and possible solutions, please read the following articles:ERROR Help 1 /confluence/display/MA
26、VEN/MojoExecutionExceptionAn attempt to send an e-mail to empty list of recipients, ignored.channel stoppedSkipping sonar analysis due to bad build status FAILUREAn attempt to send an e-mail to empty list of recipients, ignored.Finished: FAILURE解決方法:應(yīng)先運(yùn)行sonar,在運(yùn)行Jenkins進(jìn)行構(gòu)建項(xiàng)目6.2 Maven setting.xml配置錯(cuò)
27、誤如下: ERROR Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.3.1:sonar (default-cli) on project scmp: SonarQube server can not be reached at http:/localhost:9000. Please check the parameter 'sonar.host.url'. Connection refused: connect -> Help 1ERROR ERROR To see the full stac
28、k trace of the errors, re-run Maven with the -e switch.ERROR Re-run Maven using the -X switch to enable full debug logging.ERROR ERROR For more information about the errors and possible solutions, please read the following articles:ERROR Help 1 /confluence/display/MAVEN/MojoExe
29、cutionException解決方法:因?yàn)镸aven中找不到sonar-maven-plugin配置,將下面文件直接替換即可:<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="/SETTINGS/1.0.0" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="http:/maven.ap
30、/SETTINGS/1.0.0 /xsd/settings-1.0.0.xsd"> <profiles> <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <!- EXAMPLE FOR MYSQL -> <sonar.jdbc.url>jdbc:mysql:/localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 </sonar.jdbc.url> <sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName> <sonar.jdbc.username>sonar</sonar.jdbc.username> <sonar.jdbc.password>so
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版畫廊裝飾裝修合同范本6篇
- 2024-2025學(xué)年高中語(yǔ)文第一單元?dú)v史與英雄第1課曹操獻(xiàn)刀訓(xùn)練含解析新人教版選修中國(guó)小說(shuō)欣賞
- 2024蘋果季節(jié)性收購(gòu)與加工服務(wù)合同3篇
- 2025年私人房產(chǎn)買賣合同(含合同變更程序)3篇
- 2025年度企業(yè)內(nèi)部審計(jì)與風(fēng)險(xiǎn)控制合同
- 二零二五年度科技研發(fā)中心場(chǎng)地租賃與研發(fā)成果轉(zhuǎn)化合同2篇
- 2025年度泥工施工項(xiàng)目進(jìn)度與成本控制合同
- 2024門窗購(gòu)銷及綠色建筑認(rèn)證服務(wù)合同樣本3篇
- 隨機(jī)模式設(shè)計(jì)
- 2025年新能源設(shè)備出口合同范本(含售后服務(wù))3篇
- 替格瑞洛藥物作用機(jī)制、不良反應(yīng)機(jī)制、與氯吡格雷區(qū)別和合理使用
- 河北省大學(xué)生調(diào)研河北社會(huì)調(diào)查活動(dòng)項(xiàng)目申請(qǐng)書
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領(lǐng)導(dǎo)力
- 企業(yè)人員組織結(jié)構(gòu)圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 兩段焙燒除砷技術(shù)簡(jiǎn)介 - 文字版(1)(2)課件
- 實(shí)習(xí)證明模板免費(fèi)下載【8篇】
- 復(fù)旦大學(xué)用經(jīng)濟(jì)學(xué)智慧解讀中國(guó)課件03用大歷史觀看中國(guó)社會(huì)轉(zhuǎn)型
- 案件受理登記表模版
- 最新焊接工藝評(píng)定表格
評(píng)論
0/150
提交評(píng)論