聲明
本文轉自:https://www.jianshu.com/p/dd4a4bc59fc3?from=singlemessage
正文
近期比較關注代碼的檢測,之前由於用的findbugs,因此沒有可視化的界面
所以便搜索了一些代碼檢測管理平台,於是便搜索到了這一款平台,接下來就開始搭建吧
前期准備
- jdk 1.8.0._131
- maven 3.5.3
- mysql 5.7
開始搭建
-
軟件下載
登陸網址 https://www.sonarqube.org/downloads/
直接下載最新的社區版即可1 -
配置數據源
打開配置文件:..\sonarqube-7.4\conf\sonar.properties
增加配置:以下是mysql的配置
#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not msyISAM).
# Only the bundled driver is supported. It can not be changed.
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
- 啟動
..\sonarqube-7.4\bin\windows-x86-64\StartSonar.bat
原先配置的數據源是Oracle,啟動的時候提示連接oracle的jar包不存在,將連接oracle的jar放到路徑
..\sonarqube-7.4\extensions\jdbc-driver\oracle\ojdbc14-10.2.0.1.0.jar
如果啟動的時候 提示“另一程序正在使用此文件”
由於之前啟動的sonar進程未關閉,有沖突;打開資源管理器(ctrl+shift+esc),殺掉java進程重新啟動,問題解決
再次啟動的時候,啟動過會兒窗口會自動關閉,那是因為報錯了,打開log文件..\sonarqube-7.4\logs\sonar.log,發現提示“遠程主機強迫關閉了一個現有的連接”,如下所示:

然后打開web.log,發現提示如下:

這是因為連接的oracle的jar的版本過低
還有官方要求oracle的版本:
#----- Oracle 11g/12c # The Oracle JDBC driver must be copied into the directory extensions/jdbc-driver/oracle/. # Only the thin client is supported, and only the versions 11.2.x or 12.2.x must be used. See # https://jira.sonarsource.com/browse/SONAR-9758 for more details. # If you need to set the schema, please refer to http://jira.sonarsource.com/browse/SONAR-5000 #sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/XE
想想算了,不想去找jar包了於是便升級mysql版本到mysql5.7,然后mysql的連接上面已經提供了
配置好重新啟動,由於第一次需要創建表,所以可能有點慢
- 登陸系統
訪問http://localhost:9000
初始用戶名 密碼 admin admin
登陸系統后按照如下步驟下載安裝 中文漢化包

安裝好插件重啟sonar,登錄后如下(已經創建了一個項目,首次登錄后界面有些許差異)

接下來創建第一個項目

將
mvn sonar:sonar \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=0006282044b5a5098d23d999c93f9c11eef16025
復制到maven項目的根目錄下啟動檢查即可
檢查后可以在SonarQube平台里看到一些代碼的問題,如下:



- Windows下重啟sonar:(這一步不清楚有沒有更好的方法,如有請指出)
- 首先關閉SonarQube.bat窗口
- 再Ctrl+Shift+Esc調出windows資源管理器
- 在進程中關閉所有java.exe進程
- 然后重新進入.\sonarqube-7.4\bin\windows-x86-64\,運行StartSonar.bat文件
IDEA集成SonarLint
SonarLint 是一個插件,可以集成到開發工具里,有以下功能
- 當打開java文件時可自動分析靜態文件,也可以手動對整個項目做分析;
- 可連接到SonarQube同步分析規則、質量規則與自定義設置;
由於鵝主只使用IDEA,接下來就說明下IDEA如何集成
- 首先配置maven的settings.xml文件,目的是為了將結果同步到SonarQube平台上
配置代碼如下:
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.jdbc.url> jdbc:mysql://127.0.0.1:3306/sonarqube </sonar.jdbc.url> <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver> <sonar.jdbc.username>root</sonar.jdbc.username> <sonar.jdbc.password>root</sonar.jdbc.password> <sonar.host.url>http://127.0.0.1:9000</sonar.host.url> <!-- your_sonar_host是你的服務器地址,如果你的服務在本機則使用localhost --> </properties> </profile>
-
安裝插件sonarLint
10 -
配置SonarQube servers
11
如果勾選 Automatically tigger analysis ,將會自動對打開的文件進行分析
- 綁定上一步驟創建的,以及選擇項目對應的SonarQube的項目
這一步是由於上面步驟已經在SonarQube里分析了一次所以這里可以選擇SonarQube project,不清楚有沒有其他方法,如果有的話請指出
12 - 執行命令 ,即可將項目進行分析,以及將分析的結果同步到SonarQube平台上,如果只是用插件進行項目分析的話,測試發現是不會同步到平台上的,不清楚是不是哪里步驟有問題...
mvn clean install
mvn sonar:sonar
至此整個過程講解結束,如果有疑問或者指點的話歡迎留言(`・ω・´)