我正在使用最新的 Android Studio 3.0.0-beta6 构建我的 Android 项目,但存在这个依赖性问题。
Gradle
鼓励我将所有 compile 的
替换为 implementation 的
。这是我的项目结构:
项目:
模块 1
- 模块2
Module1依赖一些库,module2依赖module1。但是,模块 1 中的库在模块 2 中不可见。我不想复制粘贴依赖项,而宁愿只声明一次库依赖项。有一个简单的解决方案吗?谢谢。
module1 的构建 gradle:
dependencies {
....
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
...
}
module2 的构建 gradle:
implementation project(':module1')
最佳答案
在你的根项目中 -> build.gradle 你应该有这样的东西:
allprojects {
repositories {
jcenter()
}
}
在那里添加依赖!!
更新
如果您不希望所有模块都具有公共(public)依赖关系,而只希望特定模块具有公共(public)依赖关系,那么请执行以下操作:
- 在您的根项目/gradleScript 中创建一个文件夹
在此文件夹中创建一个 .gradle 文件(例如 gradleScript/dependencies.gradle) 看起来像:
ext { //Version supportLibrary = '22.2.1' //Support Libraries dependencies supportDependencies = [ design : "com.android.support:design:${supportLibrary}", recyclerView : "com.android.support:recyclerview-v7:${supportLibrary}", cardView : "com.android.support:cardview-v7:${supportLibrary}", appCompat : "com.android.support:appcompat-v7:${supportLibrary}", supportAnnotation: "com.android.support:support-annotations:${supportLibrary}", ] }
在您的根项目 build.gradle 中添加此行:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } // Load dependencies apply from: 'gradleScript/dependencies.gradle'
在您的模块中相应地添加:
// Module build file dependencies { //...... compile supportDependencies.appCompat compile supportDependencies.design }
希望这有帮助!!!
关于Android Gradle 在另一个模块中包含模块依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526414/