[英]Dagger component not found error in Java?
public class ToInject {
public int val = 0;
public ToInject(){
System.out.println("Default");
}
}
@Module
public class ToInjectModule {
@Provides
@Singleton
public ToInject provideToInject(){
return new ToInject();
}
}
@Component(modules = ToInjectModule.class)
public interface ToInjectModuleComponent {
WillGetInjected willGetInjectedMaker();
}
public class WillGetInjected {
private ToInject toInject;
@Inject
public WillGetInjected(ToInject toInject){
this.toInject = toInject;
System.out.println(this.toInject.val);
}
}
I am trying to inject ToInject
into WillGetInjected
as you see above. 我正尝试将
ToInject
注入WillGetInjected
,如上所示。 I have a ToInjectModule
and als a ToInjectModuleComponent
so I am following the instructions fully completely. 我有一个
ToInjectModule
和als ToInjectModuleComponent
所以我完全完全按照说明进行操作。 I have also imported 我也进口了
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger</artifactId>
<version>2.0</version>
</dependency>
But I keep getting this error when I do mvn compile
: 但是当我执行
mvn compile
时,我总是收到此错误:
Fatal error compiling: java.lang.NoClassDefFoundError: dagger/Subcomponent$Builder: dagger.Subcomponent$Builder -> [Help 1]
Any idea what is happening and why? 知道发生了什么,为什么?
There are two missings. 有两个失踪案。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.x</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
annotation scope
into component. annotation scope
添加到组件中。 ( Link see Singletons and Scoped Bindings
) Singletons and Scoped Bindings
) @Component(modules = ToInjectModule.class)
public interface ToInjectModuleComponent {
WillGetInjected willGetInjectedMaker();
}
to 至
@Singleton
@Component(modules = ToInjectModule.class)
public interface ToInjectModuleComponent {
WillGetInjected willGetInjectedMaker();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.