我正在尝试将没有反射的牙签库集成到我的多模块项目中。我按照本指南将我的所有模块与 DI 连接起来。例如我有三个模块::app, :feature1, :feature2
. :app
模块依赖于:feature1
和:feature2
。我需要从两个功能模块中注入类。所以在我:app
的build.gradle
文件中我需要写这样的东西(使用annotationProccessor - 而不是kapt):
annotationProcessorOptions { arguments = [
toothpick_registry_package_name : 'com.example.app',
toothpick_registry_children_package_names : "com.example.feature1,com.example.feature2"
]}
如您所见,toothpick_registry_children_package_names
参数有两个值(两个值的列表)。但是如何使用 kapt 插件为一个键设置多个值?我试过这样做:
kapt {
arguments {
arg("toothpick_registry_package_name", "com.example.app")
arg("toothpick_registry_children_package_names", ['com.example.feature1','com.example.feature2'])
}
}
但生成的代码如下所示:
public MemberInjectorRegistry() {
addChildRegistry(new [com.example.feature1.MemberInjectorRegistry());
addChildRegistry(new com.example.feature2].MemberInjectorRegistry());
registerGroup0();
}
如您所见,参数包括方括号(第一个参数以“[”开头,第二个以“]”结尾)。我究竟做错了什么?我试图删除方括号,但两个模块名称只是像这样连接:
public MemberInjectorRegistry() {
addChildRegistry(new com.example.feature1 com.example.feature2.MemberInjectorRegistry());
registerGroup0();
}
是 kapt 插件中的错误还是我做错了什么?