程式碼品質管理sonarqube部署使用

一、sonarqube的部署

1.下載sonaqube://www.sonarqube.org/downloads/

根據需要下載特定版本:

 

 2.如果通過sonar-scanner進行程式碼掃描的話需要下載sonar-scanner的安裝包,如果通過maven或者sonarlint進行則不需要。

sonar-scanner下載地址://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 掃描工具:

D:\sonarqube\sonar-scanner-cli\conf\sonar-scanner.properties

# 配置scanner連接的sonar服務地址
sonar.host.url=//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

出現下面資訊,服務啟動成功:

 

 訪問://127.0.0.1:9000/ 進行登錄,默認帳號密碼:admin/admin

三、程式碼掃描:

掃描程式碼需要新建並配置程式碼掃描屬性文件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的插件,雙擊就可以進行程式碼掃描,掃描過後可以在sonarqube的介面看到掃描的結果。

 

 

四、sonarlint的使用:

1.在idea的插件市場搜索sonarlint,下載安裝。

2.登錄sonarqube的管理介面,創建項目並進行配置。然後再idea中配置sonarlint連接到sonarqube,並綁定項目:

 

 點擊next進入下一步,創建連接,連接可以選擇token方式或者帳號密碼方式:

 

 連接方式創建好以後本地項目與sonarqube中的項目進行綁定。

 

 3.右擊項目進行掃描。sonarlint對項目的掃描只會從sonarqube上拉取規則來掃描本地的程式碼,並不會向sonarqube上傳掃描結果:

 

 

 

 

 

 版權所有,侵權必究,引用請註明出處。