动态包含 dagger2 模块

Dynamically include dagger2 modules

我有 dagger 组件 MainComponent,它依赖于另一个模块:LocalModulePrdModule。我想动态包含基于某些标志的模块之一。快速示例:

在代码中它看起来像这样:

@Component(modules = [LocalModule::class])
interface MainComponent

但是,如果我正在为客户构建我的应用程序,那么我必须手动将其更改为:

@Component(modules = [PrdModule::class])
interface MainComponent

我想要的是这样的:

@Component(modules = [if(someFlag) {LocalModule::class} else {PrdModule::class}])
interface MainComponent

如果我能在 gradle 的构建选项中设置这个标志就好了。

感谢 jsamol,不同的源集解决了我的问题。这正是我要找的!