我试图将没有反射的Toothpick库集成到我的多模块项目中。我按照this guide将所有模块连接到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();
}
正如你所看到的,参数包括方括号(第一个参数以&#34开头; [",第二个以#34结束;]#34;)。我究竟做错了什么?我试图删除方括号,但两个模块名称只是连接在一起:
public MemberInjectorRegistry() {
addChildRegistry(new com.example.feature1 com.example.feature2.MemberInjectorRegistry());
registerGroup0();
}
是kapt插件中的错误还是我做错了什么?