构建一个 Android 库模块,该模块依赖于其他两个模块,包括结果中的模块 类 和资源
Building an Android Library module that depends on two other modules including the modules classes and resources in the result
我需要帮助解决这个问题。我的项目有三个模块,我称之为模块 A、B 和 C。它们都是 Android 库模块。
C 是最终产品。我想将其导出为 AAR,其中包含 A 和 B 的所有 类 和资源。
我注意到仅仅添加:
implementation project(':libA')
implementation project(':libB')
不会将 A 和 B 添加到 C,我将不得不单独分发它们,这不是我想要的(尽管如果没有其他方法我可以这样做)。
我还注意到,如果我构建 A 和 B,手动将生成的 AAR 复制到 C 中的 lib 文件夹并添加依赖项
implementation fileTree(include: ["*.aar"], dir: "libs")
然后它确实在最终结果中包含了 A 和 B。但我不想每次都手动执行此操作,所以我想要的是创建一个 gradle 任务来为我执行此操作。
经过几次尝试,没有运气。我一直无法创建这个。到目前为止,我尝试的是创建自定义 gradle 配置(我们称之为 aarDependency)并将依赖项声明为
aarDependency project(':libA')
aarDependency project(':libB')
然后我把我的任务写成
task copyAARDependencies(type: Copy) {
dependsOn(":libA:assembleRelease")
dependsOn(":libB:assembleRelease")
from configurations.aarDependency.artifacts.files
into("libs")
}
可惜,没有文件被复制。
有人对此有任何解决方案吗?如果有其他解决方案,则不需要是 gradle 脚本。
提前致谢。
您正在尝试实现 so-called“fat-aar”,有一个 Gradle 插件可用于 https://github.com/kezong/fat-aar-android
我需要帮助解决这个问题。我的项目有三个模块,我称之为模块 A、B 和 C。它们都是 Android 库模块。
C 是最终产品。我想将其导出为 AAR,其中包含 A 和 B 的所有 类 和资源。
我注意到仅仅添加:
implementation project(':libA')
implementation project(':libB')
不会将 A 和 B 添加到 C,我将不得不单独分发它们,这不是我想要的(尽管如果没有其他方法我可以这样做)。
我还注意到,如果我构建 A 和 B,手动将生成的 AAR 复制到 C 中的 lib 文件夹并添加依赖项
implementation fileTree(include: ["*.aar"], dir: "libs")
然后它确实在最终结果中包含了 A 和 B。但我不想每次都手动执行此操作,所以我想要的是创建一个 gradle 任务来为我执行此操作。
经过几次尝试,没有运气。我一直无法创建这个。到目前为止,我尝试的是创建自定义 gradle 配置(我们称之为 aarDependency)并将依赖项声明为
aarDependency project(':libA')
aarDependency project(':libB')
然后我把我的任务写成
task copyAARDependencies(type: Copy) {
dependsOn(":libA:assembleRelease")
dependsOn(":libB:assembleRelease")
from configurations.aarDependency.artifacts.files
into("libs")
}
可惜,没有文件被复制。
有人对此有任何解决方案吗?如果有其他解决方案,则不需要是 gradle 脚本。
提前致谢。
您正在尝试实现 so-called“fat-aar”,有一个 Gradle 插件可用于 https://github.com/kezong/fat-aar-android