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

问题描述 投票:0回答:1

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

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

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

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

在本例中,核心库、库 1 和库 2 使用 Dagger 2 的依赖注入,并且每个库都创建自己的依赖关系图。因此,它们中的每一个都有自己的组件接口、模块和 Dagger 2 生成的类。而且它们都具有 @Inject 注释来获取所需的对象实例。

核心库使用 2 个类来与其他库建立连接。构建依赖关系图的初始值设定项类和具有返回所需对象实例的 get 方法的发布者类。

我想要完成的是制作3个aar文件,每个库一个。库 1 和库 2 使用核心库 aar。应用程序从工件存储库中获取库 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);
}
}
android gradle dagger-2 aar
1个回答
0
投票

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

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.