Java代碼品質監控工具Sonar安裝

來源:互聯網
上載者:User

標籤:java   sonar   maven   mysql   

1.  代碼品質七宗罪

Sonar是一個代碼品質管理系統,它的協助文檔開篇明義,提出了代碼品質的七宗罪,總結的比較到位,不妨一看:

1.        Bug和隱藏Bug(Bugs and Potential Bugs)

2.        違反編碼規範(Coding Standards Breach)

3.        複製粘貼(Duplications)

4.        缺乏單元測試(Lack of Unit Tests)

5.        惡劣的複雜度分布(Bad Distribution of Complexity)

6.        意大利麵式設計(Spaghetti Design)

7.        注釋不足或過多(Not Enough or Too Many Comments)

2.  安裝Sonar伺服器

首先看一下sonar對安裝環境的需求,見文檔:

http://docs.codehaus.org/display/SONAR/Requirements

2.1. 安裝JRE不再詳述。2.2. 安裝資料庫

Sonar支援MySQL、Oracle、PostgreSQL、SQL Server等多種資料庫,本文選取MySQL。

參考文檔:http://docs.codehaus.org/display/SONAR/Installing

2.3. 設定資料庫

Sonar啟動前需要資料庫中有特定的使用者名稱和資料庫。以下為MySQL的配置指令碼。

# https://github.com/SonarSource/sonar-examples/tree/master/scripts/database/mysql

#Create SonarQubedatabase and user.

#

# Command: mysql-u root-p< create_database.sql

#

CREATE DATABASE sonarCHARACTER SET utf8COLLATE utf8_general_ci;

CREATE USER‘sonar‘ IDENTIFIED BY‘sonar‘;

GRANT ALL ON sonar.* TO‘sonar‘@‘%‘ IDENTIFIED BY‘sonar‘;

GRANT ALL ON sonar.* TO‘sonar‘@‘localhost‘ IDENTIFIED BY‘sonar‘;

FLUSH PRIVILEGES;


2.4. 下載並配置sonar

本文下載的是SonarQube 3.7.4 LTS,不需要下載其他工具。

修改sonar-3.7.4/conf/sonar.properties檔案中的sonar.jdbc.url、sonar.jdbc.username和sonar.jdbc.password屬性,具體要參照前面mysql伺服器的配置。

本文中設定的值是:

sonar.jdbc.username:                       sonar

sonar.jdbc.password:                       sonar

sonar.jdbc.url:   jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

sonar.properties設定檔還可以設定其他項,比如HTTP監聽連接埠,暫時保持預設。

2.5. 啟動sonar伺服器

執行sonar-3.7.4/bin/目錄下指定作業系統的指令碼,啟動sonar。

Sonar啟動後:

(1)會串連mysql伺服器,並在sonar資料庫中建立相關的表格;

(2)啟動一個http伺服器,監聽連接埠為9000,當然這個連接埠號碼是可以配置的。

當然,Sonar也可以作為服務安裝到作業系統中,本文不再描述。

2.6. 登入伺服器

通過瀏覽器登入sonar伺服器,可以對sonar進行配置、安裝外掛程式等。

URL地址預設是http://{sonar_server_ip}:9000。

預設的使用者名稱和密碼是admin/admin。

本文保持sonar的預設配置。

3.  利用maven向sonar伺服器提交分析任務

可以有多種方法向sonar提交分析任務,本文利用maven。注意sonar 3.7.4隻支援maven3.1版本。

3.1. 修改maven的settings.xml檔案。

參考文檔:http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+Maven

<profile>

      <properties>

        <sonar.jdbc.url>jdbc:mysql://192.168.150.11:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>

        <sonar.jdbc.username>sonar</sonar.jdbc.username>

        <sonar.jdbc.password>sonar</sonar.jdbc.password>

        <sonar.host.url>http://192.168.150.11:9000</sonar.host.url>

      </properties>

    </profile>

  </profiles>

3.2. 修改pom.xml檔案,以增加mysql驅動

<build>

    <extensions>

            <extension>

                    <groupId>mysql</groupId>

                    <artifactId>mysql-connector-java</artifactId>

                    <version>5.1.24</version>

            </extension>

        </extensions>

    </build>

3.3. 提交分析任務

參考文檔:http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven

執行以下maven命令:

mvn clean install

mvn sonar:sonar

注意sonar:sonar必須單獨執行。如果把sonar:sonar和其他target混在一起,比如mvn clean install sonar:sonar,可能導致不可預期的問題。

3.4. 查看分析結果

通過瀏覽器登入sonar伺服器,查看分析結果。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.