簡體   English   中英

如何在一個命令中為所有產品風格運行 lint - Android?

[英]How to run lint for all product flavours in one command - Android?

我已經為我的項目實施了產品風味。 我正在同一個代碼庫中構建三個新應用程序。

在 gradle 同步之后,已經生成了三種不同的風格,比如flavor1Debugflavor1Releaseflavor2Debugflavor2Release

我已將所有風味特定資源移動到風味特定 res 文件夾中。 當我嘗試運行./gradlew lintRelease (應該為flavor1Releaseflavor2Release運行 lint )時,它沒有檢測到任何錯誤

為了測試 lint,我在flavor1flavor2res文件夾中引入了一個未使用的資源。 我嘗試運行./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.

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