【问题标题】:Android Gradle - Filter out variant(s) only for a specific taskAndroid Gradle - 仅针对特定任务过滤掉变体
【发布时间】:2025-12-16 00:00:02
【问题描述】:

我正在使用 Android Studio 4.2.0 和 Gradle 6.7.1。

我在一个 Android 库项目上工作,当它在发布 CI 上构建时,它会构建每个单个变体,即使我真的需要一个特定变体。

我已经有一个variantFilter,它排除了release 不属于production 风格的构建,如下所示:

android {
    variantFilter { variant ->
        def names = variant.flavors*.name
        if (variant.buildType.name == 'release' && !names.contains("production")) {
            setIgnore(true)
        }
    }
}

现在,当install 任务运行时,我想构建productionRelease 变体。

是否可以根据启动的 Gradle 任务过滤掉变体? 或者是否可以过滤 Gradle 任务图以仅保留来自 productionRelease 变体的 install 任务?

我尝试了很多配置都失败了,但我知道这个社区一定能提供宝贵的建议!

【问题讨论】:

    标签: android gradle android-gradle-plugin build.gradle android-library


    【解决方案1】:

    是否可以根据启动的 Gradle 任务过滤掉变体?

    是的,对于您的情况,有一种组装和安装特定变体的方法。你可以试试这个命令:

    ./gradlew clean installProductionRelease --stacktrace --debug --info
    

    【讨论】: