将 Dagger 与 java 11 和 maven 一起使用

Using Dagger with java 11 and maven

Google Dagger DIF 是否适用于 java 11?

如果不能,考虑到将项目更改为使用 java 8 是不可能的,替代方案是什么。

是的,可以将 dagger 2.32 与 maven 和 java 11 一起使用。

我在编译过程和 eclipse 环境方面遇到问题。

Eclipse 显示错误,指出未找到 DaggerMyClassComponent。 DaggerMyClassComponent 是从 MyClassComponent 生成的 class,带有来自 Dagger 的 @Component 注释。这个 class (和其他)是在我们执行 'mvn clean compile' 命令时生成的。在此之前eclipse会报错

此外,如果您 运行 'Maven -> Update Project',eclipse 将解决该问题(它将 运行 从 maven 编译阶段)。您可以在 /target/generated-sources/annotation 文件夹中检查生成的 classes。

此外,在使用 dagger 和 eclipse 进行开发时,如果更改使用 @Components 和 @Modules 注释的 classes 可能会出现错误。 运行 'mvn clean' 解决了与从 Dagger 生成的 classes 相关的错误,因为此命令会删除 /target 文件夹内容(包括从 dagger 生成的旧 classes)。