持續(xù)集成 SonarQube 安裝體驗
SonarQube 是代碼質(zhì)量檢測工具,可以和jenkins集成。SonarQube 通過本地服務(wù)和mvn命令(java maven打包特有)等進行代碼分析巢株,并將分析結(jié)果推送到 sonar服務(wù)器中衅疙。
下載
sonarqube 提供社區(qū)版本上荡,下載地址為:
https://www.sonarqube.org/downloads/
下載包中包含了window、linux咏瑟、mac等操作系統(tǒng)執(zhí)行腳本
環(huán)境準備
- window10 64
- 使用 H2 內(nèi)嵌數(shù)據(jù)庫
- java 11
配置
window環(huán)境中 SonarQube 使用 wraper 方式啟動,由于sonar要求 java 11 運行痪署。所以先安裝了一個java11码泞,并修改了配置文件 wraper.conf,將wrapper.java.command 修改為java 11 命令實際路徑。
wrapper.java.command=C:\Program Files\Java\jdk-11.0.2\bin\java
#wrapper.java.command=java
啟動
執(zhí)行命令
StartSonar.bat
執(zhí)行結(jié)果
jvm 1 | 2020.09.25 12:45:37 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
jvm 1 | 2020.09.25 12:45:37 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [D:\tools\sonarqube-8.4.2.36762]: C:\Program Files\Java\jdk-11.0.2\bin\java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=D:\tools\sonarqube-8.4.2.36762\temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/common/*;D:\tools\sonarqube-8.4.2.36762\lib\jdbc\h2\h2-1.4.199.jar org.sonar.server.app.WebServer D:\tools\sonarqube-8.4.2.36762\temp\sq-process11619205107628133192properties
體驗
- 默認賬號:admin
- 默認密碼:admin
sonarqube web 默認端口為9000狼犯,打開 http://localhost:9000
建立java maven項目并分析
- 立項
- 生成項目token
- 拷貝如下腳本并修改對應(yīng)token到項目的本地目錄上執(zhí)行
mvn sonar:sonar \ -Dsonar.projectKey=projectName \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=97b80b3511737e36bbb09ef6a30113f34fbe6db2
-
分析結(jié)果如下