3

例如,我有 3 个模块(A、B 和 C),其中 A 依赖于 B,B 依赖于 C(A->B->C)。模块 A 是构建过程的入口点,没有其他模块依赖它,例如 Android 应用程序中的 :app 模块。模块 A 和 C 具有相同的风味维度和相同的风味集(例如风味 1、风味 2、风味 3、风味 4 等)。模块 B 没有任何风味。

现在的问题是:如何将这些依赖项定义为“传递性”,以使模块 A 和模块 C 总是在风格上匹配?

模块 A(flavor1) -> 模块 B -> 模块 C(flavor1)

模块 A(flavor2) -> 模块 B -> 模块 C(flavor2)

模块 A(flavor3) -> 模块 B -> 模块 C(flavor3)

ETC..

如果所有 3 个模块都具有相同的风味,Gradle 会自动匹配它们,但由于 B 没有风味,因此会发生此问题中已经描述的错误:Single flavor module based on multi flavor library in Gradle but non of answers is really相关的 :(

我现在需要的是,如果我运行 ./gradlew buildFlavor1Debug 以获取带有 flavor1 的模块 A 和 C,并且通常让所有知道风味的模块与链开始时给出的风味相匹配,并且模块不不知道口味只是为了转发/忽略它们。

missingDimensionStrategy 'dimension' 的问题在于,它需要依赖的味道是硬编码/固定的,而不是基于构建的入口点的动态,例如:missingDimensionStrategy 'myDimension' 'flavor1'

模块 A(flavor1) -> 模块 B -> 模块 C(flavor1)

模块 A(flavor2) -> 模块 B -> 模块 C(flavor1)

模块 A(flavor3) -> 模块 B -> 模块 C(flavor1)

ETC..

4

0 回答 0