簡體   English   中英

如何在 android studio 中集成 sonarqube?

[英]How to integrate sonarqube in android studio?

我們如何在 android studio 中集成 sonarqube? 我遇到過使用 sonarqube 的靜態代碼分析。 解釋我們如何實現這一目標。 有許多鏈接可用於集成 sonar-runner 和 sonarqube,但要么已過時,要么不足以完成工作。

Sonarqube 是服務器端的靜態代碼分析器工具。 編寫干凈和高質量的代碼非常有用。 您應該在 localhost 或服務器上運行 sonarqube。 在那里創建一個新項目,提供名稱和唯一 ID,這個名稱和唯一性將用於向服務器識別我們以及我們的用戶名和密碼。 幾乎不需要在服務器端設置一些東西,比如 -

  1. 創建用戶。
  2. 創建具有唯一 ID 的新項目。

現在在 Android Studio 中,我們將使用gradle sonarqube命令來使用 sonarqube 分析我們的項目。

在運行 gradle sonarqube 命令之前需要執行以下步驟 -

  1. 首先,我們需要在我們的機器上安裝 gradle。
  2. (可選)在 android studio 中安裝 sonarqube 插件。 去-

文件 -> 設置 -> 插件 -> 然后輸入 sonarqube 並單擊底部的瀏覽存儲庫。

  1. 打開 build.gradle 文件,添加插件 sonarqube.org 並添加以下屬性-

     apply plugin: "org.sonarqube" sonarqube { properties { property "sonar.projectName", "MyProject" property "sonar.projectKey", "com.example.myproject" property "sonar.host.url", "http://192.114.1.1:9000" property "sonar.language", "java" property "sonar.sources", "src/main/" property "sonar.login", "username" property "sonar.password", "password" } }
  2. 打開項目 gradle 文件並在依賴項中添加-

     dependencies { classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1" }
  3. 在存儲庫中添加-

     allprojects { repositories { maven { url "https://plugins.gradle.org/m2/" } } }

現在在 Android Studio 端你的設置已經完成,運行命令gradle sonarqube來運行分析。

如果團隊合作並希望為所有開發人員創建不同的分支,請運行command-gradle sonarqube -Dsonar.branch={YouName}

如果您使用的是 gradle 3.X,請按照以下步驟操作:

1.- 從這里下載並在 localhost Sonarqube 上運行: https ://www.sonarqube.org/downloads/

2.- 在 gradle.properties:

systemProp.sonar.host.url=http://localhost:9000
systemProp.sonar.login=XXXXXXXXXXXXXXXX (put your token)

3.- 在存儲庫中的 build.gradle(Module:app) :

maven {
            url "https://plugins.gradle.org/m2/"
        }

以及內部依賴項:

classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7"

最后在 buildscript 之外:

apply plugin: "org.sonarqube"

4.- 運行命令: gradle sonarqube

5.-構建成功后等待5分鍾查看結果報告

集成 Sonarqube 可能有點困難,我為 Android 編寫了一個 Gradle 插件以使其更容易。

這是一篇關於它的文章: https ://proandroiddev.com/android-analyzer-df0e4d80dc74

這是插件: https ://github.com/pinchbv/android-analyzer

如果有人讓 scm 提供程序自動檢測失敗,他們可以通過編寫以下內容來禁用 scm:

            property "sonar.scm.disabled", "True"

在 build.gradle 文件的屬性部分

對於 KMM 使用 setProperty(key, value)

sonarqube {
    properties {
        setProperty("sonar.projectName", "MyProject")
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM