我知道这个问题:How to add dependencies to project's top-level build.gradle file?
但它没有给出我需要的答案。
假设我的 android 项目有 3 个库模块 A
、B
和 C
。
这三个都使用一个共同的依赖项,比如 D1
,其中 D1
是像 Dagger
、Room
等库。
现在,我没有将 D1
添加到所有三个,而是考虑将 D1
添加到项目级别 build.gradle
。
我试过做这样的事情,但它给出了错误:
在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [目录 'libs'] 的方法实现()。
buildscript {
ext.kotlin_version = '1.3.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.dagger:dagger-android-support:2.15'
implementation "com.google.dagger:dagger:2.16"
kapt "com.google.dagger:dagger-android-processor:2.16"
kapt "com.google.dagger:dagger-compiler:2.16"
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在项目级 build.gradle
中添加依赖项的正确方法是什么?
最佳答案
创建一个新的模块项目,例如common-libs
,把你所有的常用依赖放到这个项目中,打开common-libs/build.gradle
。
改变
implementation fileTree(dir: 'libs', include: ['*.jar'])
到
api fileTree(dir: 'libs', include: ['*.jar'])
然后对于所有依赖于上游的项目,只需调用
dependencies {
...
api project(':common-libs')
}
参见:https://developer.android.com/studio/build/dependencies#dependency_configurations
关于java - 如何管理多个 Android 库项目的公共(public)依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475508/