我下载了Coffee sample application并将其带入了我的IDE。运行mvn clean
后,我的IDE报告编译错误为:
在我运行mvn compile
之前,它不会得到修复。显然,示例代码引用了该工具生成的某个类。
我对这个设计感到非常惊讶,因为在你编译项目之前,你不会有一个可以编译的项目(看起来像),有点像你必须吃自己的蛋才能诞生。
问题:这是dagger2的正常使用场景吗?或者我错过了什么?
答案 0 :(得分:1)
是。 Dagger使用Java Annotation Processing Tool,它挂钩到编译过程中。在注释处理期间,生成DaggerCoffeeApp_Coffee
类,在之后,原始和生成的源代码作为一个整体进行编译。
毋庸置疑,在编译之前这个类还不存在。这就是您的IDE无法找到它并将其标记为错误的原因。运行mvn compile
后,它可以找到该类。