Я строю Java-проект, используя Gradle для сборки проекта и Dagger2 в качестве инжектора зависимостей.И я получаю эту ошибку:
<path to the class>/MyModule_SourceConnectionDTOFactory.java:12: error: duplicate class: <package>.MyModule_SourceConnectionDTOFactory
public final class MyModule_SourceConnectionDTOFactory implements Factory<ConnectionDTO> {
^
<path to the class>/MyModule_DestinationConnectionDTOFactory.java:12: error: duplicate class: <package>.MyModule_DestinationConnectionDTOFactory
public final class MyModule_DestinationConnectionDTOFactory
^
Java версия 1.8 Gradle версия: 5.4.1 (также пробовал с 4.5.1)
Зависимости кинжала:
dependencies {
annotationProcessor 'com.google.dagger:dagger-compiler:2.17'
compile 'com.google.dagger:dagger:2.17'
...
}
Модуль класса:
@Module
public class MyModule {
private final MyConfiguration config;
@Inject
public MetaStoreModule(MyConfiguration config){
this.config = config;
}
@Provides
@Singleton
@Named("sourceConnection")
public ConnectionDTO sourceConnectionDTO() {
return new ConnectionDTO(config.sourceHost(), config.sourceUser(),
config.sourcePassword(), config.sourceDataBaseName());
}
@Provides
@Singleton
@Named("destinationConnection")
public ConnectionDTO destinationConnectionDTO() {
return new ConnectionDTO(config.destinationHost(), config.destinationUser(),
config.destinationPassword(), config.destinationDataBaseName());
}
}
Класс компонента:
import dagger.Component;
import javax.inject.Singleton;
@Singleton
@Component(modules = MyModule.class)
public interface MyComponent{
@Named("sourceConnection")
ConnectionDTO sourceConnectionDTO();
@Named("destinationConnection")
ConnectionDTO destinationConnectionDTO();
}
Если у меня есть только один компонент, аннотированный этим именем, не уверен, почему он находит дубликат класса