1

我正在尝试将没有反射的牙签库集成到我的多模块项目中。我按照本指南将我的所有模块与 DI 连接起来。例如我有三个模块::app, :feature1, :feature2. :app模块依赖于:feature1:feature2。我需要从两个功能模块中注入类。所以在我:appbuild.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 插件中的错误还是我做错了什么?

4

0 回答 0