每种口味的room.schemaLocation

问题描述 投票:0回答:1

我有一个代表多个品牌的多口味项目,每个品牌都有自己的数据库,我正在寻找一种简单的方法来为每个品牌导出房间模式。

例如:

flavor#1 -> “$projectDir/flavor1/schemas”
风味#2 ->“$projectDir/flavor2/schemas”

我尝试添加这个

    kapt {
        arguments {
            arg("room.schemaLocation", "$projectDir/myFlavorName/schemas")
        }
    }

在每个风味 { } 块内但不起作用(它仅适用于“最后”风味) 有没有简单的方法可以实现这一点?

提前致谢:)

android build.gradle android-room android-productflavors kapt
1个回答
0
投票

使用 room 插件 (2.6.+),您可以通过在应用程序 build.gradle.kts 文件中的风味声明中定义自定义架构位置来实现这一点:

productFlavors {
    create("yourFlavorName1") {
        ...
        room {
            schemaDirectory(
                variantMatchName = "yourFlavorName1",
                path = "$projectDir/schemas/customDir1"
            )
        }
        ...
    }
    create("yourFlavorName2") {
        ...
        room {
            schemaDirectory(
                variantMatchName = "yourFlavorName2",
                path = "$projectDir/schemas/customDir2"
            )
        }
        ...
    }
}

此处内所述

private fun configureVariant(...)
,variantMatchName 与几种类型的名称进行比较,flavorName 是其中之一

© www.soinside.com 2019 - 2024. All rights reserved.