在非Android应用程序中我完全厌倦了Dagger 2 (IDE是IntelliJ IDEA).
的build.gradle
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "net.ltgt.gradle:gradle-apt-plugin:0.9" } } apply plugin: 'java' apply plugin: 'net.ltgt.apt' dependencies { compile 'com.google.dagger:dagger:2.8' apt 'com.google.dagger:dagger-compiler:2.8' compileOnly 'javax.annotation:jsr250-api:1.0' }
零件
@Component(modules = {MyModule.class}) public interface MyComponent {}
模
@Module class MyModule {}
主要
DaggerMyComponent component = DaggerMyComponent.builder().build();
编译说
找不到符号DaggerMyComponent
绝对没有更多的想法可能是错的:(
顺便说一句,如果我跑gradlew clean build --refresh-dependencies
,没有错误,一切都很好!
但是因为我只在IDE中使用"重建项目" - 再次出错.可能是IDEA错误(回到Eclipse的时间)?
是的,我已经添加了生成的类作为内容根目录,因此IDE可以看到DaggerMyComponent
.
我已将问题发布到JetBrains
https://youtrack.jetbrains.com/issue/IDEA-169387
而解决方案是在第一个评论.
如果将IntelliJ内部编译器用于项目构建,则需要在File |中启用注释处理 设置| 构建,执行,部署| 编译器| 注释处理器
作为替代方案,您可以将构建/运行IDE操作委派给gradle.您可以在File |中找到该选项 设置| 构建,执行,部署| 构建工具| Gradle | 跑步者
在构建171.4073.35中 Delegate IDE build/run actions to gradle
,默认设置选项.