Gradle没有将Dagger 2生成的类添加到aar中

时间:2016-08-19 07:27:41

标签: android gradle dagger-2 aar

我是stackoverflow的新手,所以如果我的问题没有得到完美的解释,我很抱歉。

我当前的项目有下一个结构

                              core Library
                              |          |
                      Library 1         Library 2
                       |                 |
                    applications        applications

核心库是一个包含其他2个库的常用功能的库。

在这种情况下,核心库,库1和2使用Dagger 2的依赖注入,并且每个都创建它自己的依赖图。因此,每个人都有自己的组件接口,模块和Dagger 2生成的类。所有这些都有@Inject注释用于获取所需的对象实例。

核心库使用2个类与其他库建立连接。构建依赖关系图的初始化类和发布者类,它们获取返回所需对象实例的方法。

我想要完成的是制作3个aar文件,每个库一个。图书馆1和图书馆2使用核心图书馆。应用程序从工件库中获取库1和库2。

我目前的问题是,在3个aar文件中的任何一个都是Dagger 2生成的类。我不知道为什么。在构建项目时生成了所有类,但编译的类不在aar文件中。

我正在使用:

apt 'com.google.dagger:dagger-compiler:2.5'
compile 'com.google.dagger:dagger:2.5'
provided 'javax.annotation:jsr250-api:1.0'

的gradle-2.14.1

这是我的发布商的一个例子:

public class Publisher {
@Inject
ReceiversManager receiversManager;
@Inject
NetworkManager networkManager;
@Inject
HttpRequestManager httpRequestManager;

public ReceiversManager getReceiversManager(){
    return receiversManager;
}

public NetworkManager getNetworkManager() {
    return networkManager;
}

public HttpRequestManager getHttpRequestManager() {
    return httpRequestManager;
}

public Publisher(){
    Initializer.getComponent().inject(this);
}
}

1 个答案:

答案 0 :(得分:-1)

我用这个脚本https://github.com/adwiv/android-fat-aar

解决了这个问题

该脚本有助于创建包含依赖项的aar,这在许多情况下非常方便。