Android Gradle - 仅针对特定任务过滤掉变体

Posted

技术标签:

【中文标题】Android Gradle - 仅针对特定任务过滤掉变体【英文标题】:Android Gradle - Filter out variant(s) only for a specific task 【发布时间】:2021-08-02 14:09:58 【问题描述】:

我正在使用 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 任务?

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于Android Gradle - 仅针对特定任务过滤掉变体的主要内容,如果未能解决你的问题,请参考以下文章

如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法

如何使用 Gradle 和 JUnit 5 仅运行特定测试?

任务调度程序 - 仅针对特定任务的事件运行

每个变体的 Android Gradle 自定义任务

Travis CI 跳过测试(Gradle Android 项目)

Gradle常用命令