[英]How to run lint for all product flavours in one command - Android?
我已經為我的項目實施了產品風味。 我正在同一個代碼庫中構建三個新應用程序。
在 gradle 同步之后,已經生成了三種不同的風格,比如flavor1Debug 、 flavor1Release 、 flavor2Debug 、 flavor2Release 。
我已將所有風味特定資源移動到風味特定 res 文件夾中。 當我嘗試運行./gradlew lintRelease (應該為flavor1Release和flavor2Release運行 lint )時,它沒有檢測到任何錯誤
為了測試 lint,我在flavor1和flavor2的res文件夾中引入了一個未使用的資源。 我嘗試運行./gradlew lintFlavor1Release或./gradlew lintFlavor2Release ,它分別檢測錯誤和拋出。
但是./gradlew lintRelease沒有拋出任何錯誤。 我哪里錯了?
嘗試這樣的事情:
制作一個自定義 gradle 任務,該任務將分別運行所有這些 lint 任務。
tasks.register("runAllLinters")
afterEvaluate {
if ("lintFlavor1Release" in tasks.names) {
runAllLinters.dependsOn tasks.named("lintFlavor1Release")
}
}
當然,這只會觸發 Flavor1 - 因此您需要擴展if()
條件和runAllLinters.dependsOn
塊以依賴於所有依賴於風味的 lint 任務。
最后,您應該能夠像./gradlew runAllLinters
一樣運行它
嘗試這個:
afterEvaluate {
def LINT_TASK_NAME = "lint"
def lintTask = tasks.findByName(LINT_TASK_NAME)
tasks.findAll { task ->
task.name.startsWith(LINT_TASK_NAME) &&
task.name != LINT_TASK_NAME &&
// remove some standard lint subtasks
!task.name.startsWith("lintFix") &&
!task.name.startsWith("lintAnalyze")
}.each { task -> lintTask.dependsOn.add(task) }
}
這使得任務“lint”依賴於除某些標准之外的所有其他“lintXxxx”任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.