# SonarQube 檢測程式碼品質的開源平台 - 提供 WEB 介面 - 分析潛在 BUG、可靠性、重覆性、技術債務、測試覆蓋率 - 提供程式碼改善建議 - 結合 CI/CD ![SonarQube](https://i.imgur.com/YGwVCtA.png "SonarQube") --- [TOC] --- ## 安裝 - 可以使用 `Docker Desktop` 來搭建 > https://www.docker.com/products/docker-desktop/ - 在 Docker 裡面搜尋 `SonarQube` 後 > ![Docker](https://i.imgur.com/ohCdcS0.png "Docker") - `RUN`、PORT `9000` > ![RUN](https://i.imgur.com/KEbW42Q.png "RUN") - 成功 > ![DONE](https://i.imgur.com/AQGZNbU.png "DONE") --- ## 開啟網頁 ```markdown! http://localhost:9000/ ``` - 初次登入帳密 ```markdown! admin ``` > ![WEB](https://i.imgur.com/tgKnfqF.png "WEB" =300x) - 建立專案 > ![PROJECT](https://i.imgur.com/5OfpqJO.png "PROJECT") - local > ![LOCAL](https://i.imgur.com/8bYTgJW.png "LOCAL") - 填寫專案資訊 > ![INFO](https://i.imgur.com/klVyoMV.png "INFO") - 先選全域設定 > ![GLOBAL](https://i.imgur.com/uJGvLk5.png "GLOBAL") --- ## 分析 - 建好專案後點選專案,選 `Locally` > ![METHOD](https://i.imgur.com/7vrIVfB.png "METHOD") - 產生 Token > ![TOKEN](https://i.imgur.com/6v24OMc.png "TOKEN") - 接著要跑分析之前,要安裝 `scanner`(電腦也需要有 JAVA) ![SCANNER](https://i.imgur.com/RxbJwOG.png "SCANNER") > https://docs.sonarsource.com/sonarqube/10.6/analyzing-source-code/scanners/sonarscanner/ - `scanner` 裝完後,記得加入環境變數 - 接著就可以把提供的指令,貼到專案的終端機裡面去跑分析惹 :::info - 【MAC 安裝方式】 :::spoiler 1. 解壓縮文件並將其放在合適的路徑中,例如 /usr/local/bin/ 2. 編輯文件 ```shell! nano ~/.zshrc ``` 3. 加入環境變數 ```shell! export SONAR_SCANNER_HOME=/usr/local/bin/sonar-scanner export PATH=$PATH:$SONAR_SCANNER_HOME/bin ``` 4. 退出終端機重開,檢查版本 ```shell! sonar-scanner --version ``` - 如果出現以下訊息,代表需要安裝 `JAVA` ```shell! The operation couldn’t be completed. Unable to locate a Java Runtime. Please visit http://www.java.com for information on installing Java. ``` - 檢查版本 ```shell! java -version ``` - 安裝 ``` brew install openjdk ``` - 安裝完成後會看到類似這條指令,再去跑 ```shell! sudo ln -sfn $(brew --prefix openjdk)/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk ``` - 編輯文件 ```shell! nano ~/.zshrc ``` - 加進環境變數 ```shell! export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$JAVA_HOME/bin:$PATH ``` ::: --- ## 後續可以做的 - 把伺服器架起來、結合 CI/CD 導入專案 - 根據建議修復程式碼 --- ## ref - `原來程式碼品質也可以被檢測:初探 SonarQube`-2022 > https://medium.com/starbugs/14e99687806e - `[Tool Note] - 讓 SonarQube 成為你的糞 Code 守門員`-2022 > https://rexhung0302.github.io/2022/12/12/20221212/ - `SonarQube 基礎安裝與使用`-2024 > https://blog.ite2.com/sonarqube-basic-installation-and-usage/ ---