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

Gradle is not adding Dagger 2 generated classes to aar

我是 Whosebug 的新手,如果我的问题没有得到很好的解释,我很抱歉。

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

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

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

在这种情况下,核心库、库 1 和 2 使用 Dagger 2 的依赖注入,它们每个都创建自己的依赖图。所以他们每个人都有自己的组件接口、模块和 Dagger 2 生成的 classes。而且他们都有@Inject注解来获取他们需要的对象实例。

核心库使用 2 classes 与其他库建立连接。构建依赖关系图的初始化器 class 和发布器 class 具有获取方法的方法 return 所需的对象实例。

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

我目前的问题是,在 3 个 aar 文件中的任何一个都是 Dagger 2 生成的 classes。我不确定为什么。所有 classes 都是在我构建项目时生成的,但编译的 classes 不在 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);
}
}

我用这个脚本解决了问题https://github.com/adwiv/android-fat-aar

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