Android Studio - 向所有模块添加依赖项
Posted
技术标签:
【中文标题】Android Studio - 向所有模块添加依赖项【英文标题】:Android Studio - Add dependency to all modules 【发布时间】:2015-12-09 11:19:38 【问题描述】:我已经阅读了大量类似this one 的帖子,但它们只告诉你不应该将依赖项添加到项目根目录build.gradle
,我知道。
我的情况是:我有很多模块都需要同一个库。所有这些,所以我需要将它们全部配置为具有相同的库。是否可以以某种方式将其添加到根 build.gradle
或者我已经添加到每个项目 build.gradle
依赖项?
【问题讨论】:
可以使用子项目proandroiddev.com/… 【参考方案1】:你可以这样做。 这并不意味着为所有模块添加依赖项,但通过这种方式您可以集中一个依赖项。
在***build.gradle
ext
//Version
supportLibrary = '23.0.1'
//Support Libraries dependencies
supportDependencies = [
appCompat : "com.android.support:appcompat-v7:$supportLibrary",
design : "com.android.support:design:$supportLibrary",
]
在每个模块中添加build.gradle
:
dependencies
//......
compile supportDependencies.appCompat
compile supportDependencies.design
这样,当你必须更新库时,你可以只更改顶层文件。
【讨论】:
感谢您的解决方案!真的很有用!【参考方案2】:我知道这个问题有点老了,但我开始使用这个,如果你不关心注入到你的模块中的库,我认为它会更干净。
根build.gradle
ext
commonDependencies = [
// Layout Libraries
constraintLayoutApi : "androidx.constraintlayout:constraintlayout:$constraintlayout_version",
materialApi : "com.google.android.material:material:$material_version",
flexboxApi : "com.google.android:flexbox:$flexbox_version",
// Image library (Picasso is alternative)
glideImpl : "com.github.bumptech.glide:glide:$glide_version",
glideCompilerAnno : "com.github.bumptech.glide:compiler:$glide_version",
// Network library (Volley is alternative)
retrofitImpl : "com.squareup.retrofit2:retrofit:$retrofit_version",
retrofitJacksonImpl : "com.squareup.retrofit2:converter-jackson:$retrofit_version",
retrofitScalarsImpl : "com.squareup.retrofit2:converter-scalars:$retrofit_version",
retrofitJava8Impl : "com.squareup.retrofit2:converter-java8:$retrofit_version",
// Dependency Injection
daggerImpl : "com.google.dagger:dagger:$dagger_version",
daggerCompilerAnno : "com.google.dagger:dagger-compiler:$dagger_version",
// we add this so we can use the android support libraries
daggerAndroidSupportImpl: "com.google.dagger:dagger-android-support:$dagger_version",
daggerProcessorAnno : "com.google.dagger:dagger-android-processor:$dagger_version"
]
在应用程序中build.gradle
:
dependencies
api "androidx.appcompat:appcompat:$app_compact_version"
api "com.google.android.gms:play-services-auth:$play_service_version"
commonDependencies.each key, value ->
if (key.endsWith('Anno'))
annotationProcessor value
else if (key.endsWith('Impl'))
implementation value
else if (key.endsWith('Api'))
api value
如您所见,我正在通过根 gradle 文件中键的后缀检查 API、实现和注释。
【讨论】:
它对我有帮助。谢谢!仅供参考:root build.gradle
表示Android项目的build.gradle
(其他为Module.【参考方案3】:
-
首先您必须在 Android Studio(您当前的工作区)中添加图表库项目(模块)
文件 -> 导入模块
要在构建路径中添加库项目(模块),请单击
文件 -> 项目结构
在左侧单击
应用程序 -> 依赖项选项卡 -> 绿色 + 按钮 -> 模块依赖项
现在选择您已经添加的库项目。
有关更多详细信息,请参阅此link
【讨论】:
我知道如何向我的项目添加依赖项。我想知道是否有可能(是的,我引用自己的话)add this somehow to the root build.gradle or do I have add to each project build.gradle the dependency?
您必须为所有库添加依赖项以上是关于Android Studio - 向所有模块添加依赖项的主要内容,如果未能解决你的问题,请参考以下文章
为啥 lib 模块不能在 android studio 中包含第三个 lib
Android Studio - Gradle 总是构建所有模块,而不仅仅是我运行的模块