環境:搭建 windows 本地環境
簡介
SonarQube是一種自動代碼審查工具,用于檢測代碼中的錯誤、漏洞和代碼Bug,它可以與您現有的作業流程集成,以支持跨專案分支和拉取請求的持續代碼檢查,
環境要求
運行 SonarQube 的唯一先決條件是在你的機器上安裝 Java 11(Oracle JRE 11 或 OpenJDK 11)且配置了環境變數,如果未安裝Java 11 ,SonarQube(Version: 9.1)服務啟動失敗;
下載SonarQube
Download | SonarQube
下載好是一個zip壓縮檔案,直接解壓到自己想要的目錄既可以;
啟動SonarQube服務
找到 安裝目錄\bin\windows-x86-64,點擊StartSonar.bat既可啟動SonarQube服務;
瀏覽器中輸入
http://localhost:9000 或http://127.0.0.1:9000 即可進入可視化的SonarQube服務界面;初始賬號密碼都是admin;
在網頁端SonarQube創建專案
1,點擊Manually,手動創建專案

2,填寫專案名稱和密鑰,密鑰可以使用專案名稱或者自定義都可以

3,點擊Set Up進入,再點擊Locally選項

4,輸入要生Token的內容,例如輸入:Test,點擊Generate生成Token,點擊繼續;

5,這是最后一步,點擊Gradle

注意:以上設定要記住Project display name(專案名稱)、Project key(密鑰)、生成的Token,后面AndroidStudio關聯SonarQube服務的時候要用;
踩坑之路
AndroidStudio連接到SonarQube
前言
由于啟動SonarQube需要JDK11,所以把Java的環境變數改成JDK11(之前是JDK 8),改了之后如果AndroidStudio是老的版本比如4.1.1之前的版本,可能導致Android Studio啟動不了,但是AndroidStudio在改之前已經打開了不影響繼續使用;如果是目前最新的AndroidStudio 2020.3.1版本不影響,AndroidStudio 2020.3.1安裝時自帶jre就是jre11;踩了很多坑才總結者段話;
1,AndroidStudio安裝SonarLint插件
具體步驟及使用參考:AndroidStudio SonarLint安裝及使用_ezconn的博客-CSDN博客
2,專案下的build.gradle中添加插件:
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
3,module 級別的build.gradle(:app)中添加
apply plugin: 'org.sonarqube'
和
sonarqube {
properties {
//Sonar服務器地址
property "sonar.host.url", "http://localhost:9000"
//Token模式
//property "sonar.login","07704f4ca9c20492de2b5b7814a1c0a4ebc6731c"
//賬號密碼模式
property "sonar.login","SonarQube 賬號"
property "sonar.password","SonarQube 密碼"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.projectKey", "Test_Sonar"
property "sonar.projectName", project.name
//需要掃描的上傳檢測代碼的模塊,可以選擇也可以配置哪一些需要或者不需要上傳的模塊(這里指APP模塊下面的java包里面的全部)
property "sonar.sources", "src/main/java"
property "sonar.projectVersion", project.version
}
}
4,Settings —> Tools —> SonarLint ,點擊“+”號

5,填寫自定義名稱(例如Test),選擇sonarqube選項,填寫SonarQube服務地址,例如本地SonarQube服務地址http:localhost:9000或者http://127.0.0.1:9000

6,點擊下一步,選擇Login / Password

7,輸入SonarQube服務的賬號和密碼;其他一路下一步就好,最后點擊finish;
8,點擊Project Settings ,在Connection中找到剛才設定的Connection Name 名稱;

9,點擊Search in list..同步SonarQube服務端專案;Project :會有Test_Sonar可以選擇顯示;設定好Connection和Project選項之后點擊OK;
10,Terminal 終端輸入
gradlew sonarqube
AndroidStudio不在使用SonarQube
File ->Settings -> Tools -> SonarLint -> Project Settings 取消勾選Bind project to SonarQube/SonarCloud即可;
其他
AndroidStudio 版本是2020.3.1,如果AndroidStudio中使用的Gradle是高版本的,比如gradle是7.0.2 ,AGP是 7.0.3;那么Gradle SDK就要使用jre11;因為Gradle工具是groovy語言寫的,而groovy也是基于JVM的語言,所以使用和運行Gradle也需要jre版本要求;
Java 8 Java11 都有安裝,且環境變數配置的是Java11;
例外
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
解決辦法:gradle.properties檔案中加入org.gradle.java.home= D:\\IDE\\jdk11(自己本機Java11安裝目錄,注意沒有到bin目錄),可能是因為執行 gradlew sonarqube 命令時AGP獲取是gradle.properties檔案中配置的Java 環境;
SonarQube檔案
SonarQube Documentation | SonarQube Docs
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/321311.html
標籤:其他
上一篇:Java執行緒(基礎)
