build.gradle(Project)和build.gradle(Module)之间的区别
我正在尝试添加AndroidasynchronousHttp客户端的依赖项到我的项目。 所以在这个项目中有两个build.gradle文件。
只要我明白,有不同的依赖关系:
- 在build.gradle(Project:My-app)的根级定义的一个,
- 一个build.gradle的buildscript(Project:My-app)
- 另一个是build.gradle(Modules:app)
这个问题是关于buildScript的依赖库的,关于前两种types的解释。
另外build.gradle(项目:我的应用程序)说
// NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files
所以我想Android的asynchronousHttp客户端的依赖代码应该添加在build.gradle(模块:应用程序)。
如果有人能够清楚地了解所有这些,以便更好地理解,那就太好了。
build.gradle(Project:My-app)
顶级构build文件,您可以在其中添加对所有子项目/模块通用的configuration选项。
每个项目都包含一个top-level gradle file
。 它通常包含所有modules
common configs
。 无论这个top-level gradle
包含什么,它都会影响所有的modules
。
例如:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha3' //Maven plugin classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } task clean(type: Delete) { delete rootProject.buildDir }
build.gradle(Module:app)
build立你的特定模块的文件(你添加你的依赖项,签名configuration,构buildtypes,风味等)
所有modules
都有一个特定的gradle
文件 。 无论这个gradle
文件包含什么,它只会影响包含的module
。
例如:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.hrskrs.gesturefun" minSdkVersion 10 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { zipAlignEnabled true minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true zipAlignEnabled true minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':gesture-fun') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.jakewharton:butterknife:7.0.1' }
这有点build.gradle
困惑,因为默认情况下,Android Studio会显示两个build.gradle
文件(当使用Android视图时)。
如果切换到“项目”视图,则可以看到实际的结构以及不同build.gradle
文件的位置。
build.gradle
(Project:MyApplication)文件位于项目的根文件夹中,其configuration设置适用于项目中的每个模块。 一个模块是较大项目的一个独立部分。 在一个多模块项目中,这些模块有自己的工作,但是共同组成整个项目。 大多数Android项目只有一个模块,即应用程序模块。
build.gradle
(Module:app)文件位于app
文件夹中。 其构build设置仅适用于应用程序模块。 如果有另一个模块,那么它也会有自己的build.gradle
文件。 作为一个例子 ,我做了一个包含三个模块的库项目:一个库模块,一个演示应用程序模块,以及另一个我打算用于testing的应用程序模块。 他们每个人都有自己的build.gradle
文件,我可以调整。
在一个基本的项目中,几乎所有需要编辑的内容都将放在应用程序模块的build.gradle
文件中。 你可以像这样记住它:
你正在创build一个应用程序 ,所以去
build.gradle
(模块: 应用程序 )文件。
进一步阅读
- configuration您的构build (Android文档 – 非常可读和有用)
- 多项目构build简介 (Gradle文档)
- Android:Parcelable和Serializable之间的区别?
- java.lang.NoClassDefFoundError:com.google.android.gms.internal.zzmp
- 我们可以从ContentProvider安装APK吗?
- 如何在路线谷歌地图v2机器人上绘制交互式折线
- android:如何通过android应用程序调用数字
- Android简单的警报对话框
- Android工作室 – 部署释放apk而不是debugging
- google-services.json为不同的productFlavors
- Android Facebook SDK 3.0在login时给出“remote_app_id与存储的ID不匹配”