您如何组合多种 gradle 口味或排除一种口味?

How do you combine multiple gradle flavors or exclude one?

flavorDimensions("color")

productFlavors {
    register("red") {
        setDimension("color")
    }
    register("blue") {
        setDimension("color")
    }
}

redImplementation("red library")
blueImplementation("blue library")

这会生成构建变体: 蓝色调试, 蓝色释放, 红色调试, 红色发布

但除了这些之外,我还想要一个结合了这两者的构建变体,因此最终列表将是: 蓝色调试, 蓝色释放, 红色调试, 红色发布, 蓝色红色调试, 蓝红发布

如果你有不同口味维度的它们,你最终只会得到蓝红组合。

如何设置我的 gradle 脚本来支持这种情况?最终目标是能够选择是否只需要红色库、蓝色库或两者的组合。

我不认为这是可能的味道。我可以推荐您阅读 this article 以了解更多关于口味的信息。

并查看 doc

由于您已经拥有 bluered 库模块,因此您的应用可以具有以下风格:

  • blue,依赖于blue
  • red,依赖于red
  • blueRed,这取决于 bluered

我假设 bluered 库可以并排包含。

flavorDimensions("color")

productFlavors {
    register("red") {
        setDimension("color")
    }
    register("blue") {
        setDimension("color")
    }
    register("blueRed") {
        setDimension("color")
    }
}

redImplementation("red library")
blueImplementation("blue library")
blueRedImplementation("red library")
blueRedImplementation("blue library")