Iva*_*nov 6 java eclipse dependency-injection maven dagger-2
我用Eclipse创建了一个Java应用程序,我正在使用Maven进行包管理.几天前,我能够配置我的应用程序以使用Dagger 1(将依赖项添加到pom文件,启用注释处理并将dagger,dagger-compile,javax和javawriter jar添加到Factory Path).经过与同事的几次讨论,我们决定使用Dagger 2.我尝试通过遵循Dagger 2文档将Dagger 1实现迁移到Dagger 2 ,但它没有用.
由于某些无法解释的原因,不会生成@Component带Dagger前缀的类.
因此我决定尝试Dagger 2 Coffee样品.
我创建了一个新的Eclipse Java项目,将其转换为Maven,将示例代码和Dagger 2依赖项添加到pom文件中:
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.0.1</version>
<optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我的构建失败,出现以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
DaggerCoffeeApp_Coffee cannot be resolved
Run Code Online (Sandbox Code Playgroud)
我将Coffee组件接口解压缩到一个单独的文件(命名Coffee.java)并再次尝试,但我得到了同样的错误.
我从Dagger 1中移除了Factory Path罐子,但结果仍然相同.如果我尝试添加Dagger 2 jar,我会出现多个问题已发生窗口,其中包含以下错误文本
Errors occurred during the build.
Errors running builder 'Java Builder' on project 'dagger'.
com/google/common/collect/SetMultimap
我发现当我添加dagger-compilerjar 时会出现问题.
如果我从Factory Path中删除每个jar,则构建仍然失败.
我试图找到该DaggerCoffee文件,应该自动生成但我找不到它.
如何在Eclipse中使用Dagger 2?我多次重复文档并花一天时间研究这个,但到目前为止没有运气.
经过大量的试验和错误后,我终于设法在Eclipse中配置Dagger 2.我去到项目=>属性=> Java编译器=>注释处理=>工厂路径并添加了罐子dagger,dagger-compiler,dagger-producers,javax.inject-1和guava-18.0.该guava-18.0罐子是棘手的部分.我有另一个使用旧版本的依赖项,guava-14.0.1它首先添加到pom.xml文件中.这导致旧版本guava下载到我的maven依赖项,但它不适用于Dagger 2.
所以故事的寓意是你应该总是检查依赖版本.
| 归档时间: |
|
| 查看次数: |
4060 次 |
| 最近记录: |