我正在将项目的gradle设置迁移到新的api
和implementation
配置,而不是现在的deprecated compile
。我试图尽可能多地使用implementation
,但我遇到了Dagger的障碍。
我有一个Android库模块,我在其中设置了一个带有一些私有依赖项的Dagger模块。其中一个是RxLocation
单身:
@Singleton
@Provides
RxLocation provideRxLocation(@LocationContext Context context) {
return new RxLocation(context);
}
此依赖项仅在同一个dagger模块中用作对我实际想要公开的事物的依赖。例如:
@Singleton
@Provides
Observable<Location> provideLocationUpdates(RxLocation rxLocation, LocationRequest locationRequest) {
//build observable with RxLocation here
}
我不希望RxLocation“泄漏”到其他模块,因此我尝试使用implementation
配置导入它。但是,Dagger会在我的app模块中生成LocationModule_ProvideRxLocationFactory
,显然会在那里导入RxLocation
,从而破坏构建。
除了在我的模块中手动设置RxLocation
实例(没有匕首注释)之外,我能做些什么吗?