我刚开始使用Dagger2,试图将一个(相当)复杂的应用程序移植到它。
我们有几个依赖于“公共”库(与其他项目共享)。那些“公共”库有时依赖于其他“公共”库。每个库公开一个模块。
@Module
public class JsonModule {
@Provides
public Mapper provideMapper(ObjectMapper objectMapper) {
return new DefaultMapper(objectMapper);
}
@Provides
public ObjectMapper provideObjectMapper() {
return ObjectMapperFactory.build();
}
}
@Module(includes = {JsonModule.class})
public class HttpModule {
public HttpHelper provideHttpHelper(ObjectMapper objectMapper) {
return new DefaultHttpHelper(objectMapper);
}
}
@Module(includes = {JsonModule.class, HttpModule.class})
public class MyAppModule {
public Service1 provideService1(ObjectMapper objectMapper) {
return new DefaultService1(objectMapper);
}
public Service2 provideService2(Mapper mappper) {
return new DefaultService2(mappper);
}
}
@Component(modules = MyAppModule.class)
@Singleton
public interface MyAppComponent {
public Service2 service2();
}
不幸的是,当我编译该项目时,我得到一个Dagger编译器错误:
[ERROR] com.company.json.Mapper is bound multiple times:
[ERROR] @Provides com.company.json.Mapper com.company.json.JsonModule.provideMapper(com.company.json.ObjectMapper)
[ERROR] @Provides com.company.json.Mapper com.company.json.JsonModule.provideMapper(com.company.json.ObjectMapper)
我做错了什么?在同一个依赖图中依赖一个模块两次是错误的吗?
在MyAppModule
中不应该包含JSONModule
,它是由dagger隐式包含的。当包含httpmodule
时,dagger将自动包含httpmodule
包含的所有模块(在您的示例中,是jsonmodule
)。
Velocity 不依赖 jQuery Velocity.js 可以在不引入 jQuery 的情况下单独使用。如果 你需要大部分动画效果能兼容 IE8,就必须引入 jQuery 1×。 它也可以和 Zepto 一起使用,写法和 jQuery 一样: // 无 jQuery 或 Zepto 时,Velocity()方法挂载在 window 对象上 (window.velocity) // ( 第一
问题内容: 这是我目前拥有的并且可以正常工作: 现在,我想添加另一个依赖项。我将其更改为: 但是现在我收到此错误消息: FragmentFacebookLoginComponent依赖于多个作用域组件 我该如何解决?我如何有多个依赖关系? 如果我从一个组件中删除范围,则会收到此错误消息: AnotherComponent(无作用域)不能依赖范围内的组件 问题答案: 最后,我创建了一个具有正确范围的
问题内容: 我有一个多模块项目:父POM.xml: rest-client-microservice的POM.xml如下所示: email-commons模块的POM.xml如下所示: 如果我尝试在父项目上执行,则会得到以下结果: 我已经在这个问题上困扰了好几天,但是我不知道为什么这不起作用。 问题答案: 我想到了。rest-client-microservice是一个Spring Boot项目,
我有一些年的maven项目的经验,即使是多模块项目(这让我讨厌maven的多模块特性(所以免责声明现在已经完成了)),即使我真的喜欢maven,我也无法得到一个明确的答案: 多模块maven项目的典型用途是什么?与简单的依赖关系和父pom相比,这样的结构有什么附加值? 我已经看到了很多多模块项目的配置,但是所有这些都可以通过创建一个简单的依赖库结构来解决,这些依赖库作为交付品(即使有一个父pom,
本文向大家介绍android-gradle 模块依赖,包括了android-gradle 模块依赖的使用技巧和注意事项,需要的朋友参考一下 示例 在多项目中gradle build,您可以与构建中的另一个模块具有依赖关系。 例: 该compile project(':mylibrary')行将名为“ mylibrary”的本地Android库模块声明为依赖项,并要求构建系统在构建应用程序时编译并包
在php 5.1中, 扩展之间的内部依赖是可以强制性的. 由于扩展可以静态构建到php中, 也可以构建为共享对象动态加载, 因此强制依赖需要在两个地方实现. 配置时模块依赖 第一个位置是你在本章课程中刚刚看到的config.m4文件中. 你可以使用PHP_ADD_EXTENSION_DEP(extname, depname[ , optional])宏标识extname这个扩展依赖于depname