[英]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.