簡體   English   中英

Sonarqube:使用自定義 gradle 任務掃描子項目而不是整個項目

[英]Sonarqube: scan subproject instead of whole project with custom gradle task

我必須為一個 Java 項目運行 Sonarqube 分析,該項目是 4 個其他項目中的一個子項目,如下所示:

  Parent-project
    -> serviceA
       -> src/main/java/...
    -> serviceB
       -> src/main/java/...
    -> serviceC
       -> src/main/java/...
    -> serviceD
       -> src/main/java/...
  -> gradle.properties
  -> sonar.gradle

我知道我可以排除不需要的服務,如下所示:

project(":serviceB") {
        sonarqube {
            skipProject = true
        }
    }

然而問題是我不擁有父項目,因此無法在全局 sonar.gradle 文件中進行更改,因為它也被其他服務共享。

有沒有辦法讓 sonar.gradle 只用於我的項目(serviceA),以及一個只為我的服務運行分析的 gradle 任務? 我在這里完全迷失了,因為文檔似乎沒有說明任何關於此的信息。

任何幫助將不勝感激!

我找到了解決這個問題的方法。 您實際上可以使用 sonar.gradle 中的以下設置排除父項目下不需要的項目:

project(":project-1") {
    sonarqube {
        skipProject = true
    }
}
 
project(":project-2") {
    sonarqube {
        skipProject = true
    }
}

如果您想要更多的控制級別,您不想排除整個子項目,而只想包含子項目的一部分(例如,多個團隊參與的公共共享庫,並且您想要分析只是您團隊的代碼),您可以執行以下操作:

project(":common-project") {
    sonarqube {
        properties {
            property "sonar.inclusions", "src/main/java/**/common/**"
        }
    }
}

暫無
暫無

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

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