1. 程式人生 > >Docker搭建Sonar檢測程式碼質量

Docker搭建Sonar檢測程式碼質量

1,安裝postgres資料庫

docker pull postgres

2,安裝sonarqube

docker pull sonarqube

3,啟動postgres

docker run --name postgresql -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -d postgres

4,啟動sonarqube

docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar -p 9000:9000 -d sonarqube

5,開啟測試

在瀏覽器中輸入

http://localhost:9000

即可看到如圖所示以下頁面

中文語言外掛安裝方法請參考:

https://blog.csdn.net/cc_want/article/details/84141084

6,使用

開啟IDEA,使用Spring Initiailer建立一個新的Spring boot的測試專案,來驗證一下

編寫一個TestController測試類,在此類中,我們故意暴露N個異常

package com.example.sonar;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 測試
 * Created by ccwant on 2018-11-16.
 */
@Controller
public class TestController {

    @RequestMapping("/test")
    @ResponseBody
    public String test() {
        //這裡定義一個未使用的變數
        int s = 0;

        //這裡定義一個數組,讓它丟擲異常
        int[] ts = new int[1];
        ts[5] = 1;

        //這裡定義一個空指標異常
        String nu = null;
        nu.toString();

        //這裡測試,列印100個Hello
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            list.add(i+" Hello <br>");
        }
        return Arrays.toString(list.toArray());
    }


}

新建一個maven run配置,在comand line中寫入

sonar:sonar

然後選擇sonar配置,並點選右邊綠色小箭頭,初次執行sonar命令執行時間可能略長

執行成功後,我們看到控制檯的輸出

控制檯顯示BUILD SUCCESS即執行成功,然後我們點選控制檯給出的連線地址,或手動訪問localhost:9000就可以看到程式碼分析的詳細情況