一、sonarqube的部署
1.下載sonaqube:https://www.sonarqube.org/downloads/
根據需要下載特定版本:
2.如果通過sonar-scanner進行代碼掃描的話需要下載sonar-scanner的安裝包,如果通過maven或者sonarlint進行則不需要。
sonar-scanner下載地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下載完成后的文件如下:
sonarqube是代碼質量管理的平台。
sonar-scanner是代碼掃描的命令行工具,不是必須的。
3.配置文件:
D:\sonarqube\sonarqube-7.9.1\conf\sonar.properties
配置數據庫連接屬性,以MySQL為例(sonarqube自7.9.版本開始不支持MySQL數據庫,其他數據庫連接與MySQL只有url稍微有區別):
# 數據庫連接屬性
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.jdbc.url=jdbc:mysql://10.255.23.4:30218/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=Gbom@654321
# sonar服務綁定的主機和端口(0.0.0.0表示所有IP都可訪問)
sonar.web.host=0.0.0.0
sonar.web.port=9000
# sonar 默認編碼和登錄賬號
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
配置 sonar-scanner 掃描工具(不使用scanner命令行工具進行掃描的話,則不需要配置):
D:\sonarqube\sonar-scanner-cli\conf\sonar-scanner.properties
# 配置scanner連接的sonar服務地址
sonar.host.url=http://localhost:9000
# 配置默認編碼
#sonar.sourceEncoding=UTF-8
# 配置sonar服務器連接的數據庫
sonar.jdbc.url=jdbc:mysql://10.255.23.4:30218/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=Gbom@654321
二、服務啟動
啟動sonarqube:
進入安裝目錄的bin目錄下執行命令StartSonar.bat:
D:\sonarqube\sonarqube-7.9.1\bin\windows-x86-64>StartSonar
出現下面信息,服務啟動成功:
訪問:http://127.0.0.1:9000/ 進行登錄,默認賬號密碼:admin/admin
sonarqube關於jdk版本的問題:
7.X以上的版本需要jdk11以上的支持:
修改文件 \conf\wrapper.conf
中的第四行為最新版本的 jdk 路徑。
wrapper.java.command=C:\Program Files\Java\jdk-13.0.2\bin\java
三、代碼掃描:
掃描代碼需要新建並配置代碼掃描屬性文件sonar-project.properties,將文件放在項目根目錄下:
sonar-project.properties配置內容如下:
#projectKey是項目的唯一標識,不能出現重復,可隨意起
sonar.projectKey=bom-mgmt-service
# SonarQube UI上顯示的項目名稱,不能是中文
sonar.projectName=bom-mgmt-service
# 項目的版本號
sonar.projectVersion=0.1
# 項目的代碼的編碼格式
sonar.sourceEndcoding=UTF-8
# 項目的語言
sonar.language=java
# 項目的源代碼目錄
sonar.sources=src
# 項目的編譯生成的class文件的所在目錄
sonar.java.binaries=./target/classes
1.通過scanner進行掃描:
首先進入項目根目錄
執行命令:D:\workspace\xx-service>sonar-scanner
出現如下提示后表示掃描成功。
登錄sonarqube服務進行查看掃描結果:
2.通過maven插件進行掃描:
首先在maven的配置文件C:\apache-maven-3.8.1\conf\settings.xml 添加sonarqube插件支持,並配置sonar服務器信息:
<pluginGroups> <pluginGroup>org.sonarsource.scanner.maven</pluginGroup> </pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>
http://localhost:9000
</sonar.host.url>
<sonar.login>admin</sonar.login>
<sonar.password>admin</sonar.password>
</properties>
</profile>
</profiles>
然后在項目的pom.xml 文件中引入maven的sonar插件
<build> <plugins> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.6.0.1398</version> </plugin> </plugins> </build>
刷新maven依賴后,在idea右側的maven菜單框中可以看到sonar的插件,雙擊就可以進行代碼掃描(掃描之前需要在有sonar-project.properties文件的前提下先install成功以后),掃描過后可以在sonarqube的界面看到掃描的結果。
四、sonarlint的使用:
1.在idea的插件市場搜索sonarlint,下載安裝。
2.登錄sonarqube的管理界面,創建項目並進行配置。然后再idea中配置sonarlint連接到sonarqube,並綁定項目:
點擊next進入下一步,創建連接,連接可以選擇token方式或者賬號密碼方式:
連接方式創建好以后本地項目與sonarqube中的項目進行綁定。
3.右擊項目進行掃描。sonarlint對項目的掃描只會從sonarqube上拉取規則來掃描本地的代碼,並不會向sonarqube上傳掃描結果:
五 插件的安裝使用
本人使用的 sonarqube7.9.1,Chinese Pack(中文語言包),sonar-l10n-zh-plugin-1.29,sonar-cnes-report-3.1.0(excel形式的質量表格),sonar-pdfreport-plugin-3.0.3(pdf形式的質量報表)
插件的安裝可以在 配置->應用市場 中下載,新版本好像不支持直接在市場下載,需要自己手動下載。
以下是手動下載教程。
1. 中文插件
下載地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/tags
找到和自己sonarqube對應的版本進行下載。將下載的jar包放在 sonarqube安裝根目錄\extensions\plugins 目錄下然后重啟sonarqube服務就可以了。
2.PDF分析插件(Sonar PDF Report Plugin)
官網地址:https://gitee.com/zzulj/sonar-pdf-plugin
找到和自己sonarqube對應的版本進行下載。下載jar包放置在插件目錄下,然后重啟sonarqube服務,點擊項目,在更多中點擊Download Pdf 按鈕就可以下載分析的pdf文件。
3. 綜合分析插件 Cnesreport
下載地址:
GitHub:https://github.com/cnescatlab/sonar-cnes-report.git
gitee:https://gitee.com/95me/sonar-cnes-report
找到和自己sonarqube對應的版本進行下載。下載jar包放置在插件目錄下,然后重啟sonarqube服務,點擊頂部菜單的更多,可點擊 CNES Report按鈕就可下載需要的項目分析報告。
選擇項目,點擊generate就可以生成下載分析的文件。
版權所有,轉載或引用請注明出處,謝謝。