gradle 的 依赖管理(八)
目錄
- 1. 概念
- 2. repositories
- 3. dependencies
- 4. 單項目中的依賴管理
1. 概念
gradle的依賴管理就是,在項目需要引入類庫時,只需要在gradle中聲明,gradle就會自動從本地,遠程自動引入該類庫,如果類庫之間有互相引用的情況,那么gradle會自動幫我們處理。
我們通常會通過dependencies來定義依賴的類庫,repositories告訴構建從哪里去獲取依賴,當配置好后,gradle會自動下載依賴,并存儲在本地的緩存中,在構建中使用。
repositories {mavenCentral() }dependencies {compile 'org.jsoup:jsoup:1.9.2' }2. repositories
Gradle預定義了三個Maven倉庫:
- Jcenter
- Maven Central
- 本地Maven倉庫
Maven Central 和JCenter是兩個有名的遠程倉庫,一般不同時使用它們,通常推薦使用JCenter,它是Maven Central的超集,其也是Android Studio創建Android項目時的默認依賴倉庫,而且JCenter還支持HTTPS。
本地Maven倉庫是你已經使用了的所有依賴的本地緩存,你也可以自己添加依賴。默認情況下,依賴倉庫可以在一個名為.m2目錄文件夾的主目錄中找到。
如果多個倉庫有同一個依賴,那么會按照聲明的順序下載依賴(先到先得)。
repositories {mavenLocal()jcenter()maven { url "https://jitpack.io" }flatDir {dirs 'libs'} }除了使用上面三大倉庫,我們還可以使用自定義maven倉庫,lvy倉庫,引入本地文件系統類庫。
// 自定義maven倉庫 repositories {maven {name 'Custom Maven Repository'url 'http://repo.acmp.com/release/'} }// lvy倉庫 repositories {ivy {url 'http://repo.acmp.com/release/'} }// 使用maven憑證 repositories {maven {url 'http://repo.acmp.com/release/'credentials{username 'user'password 'secretPassword'}} }// 引入本地文件系統類庫 repositories {flatDir{dirs 'flatlibs'} }3. dependencies
一個依賴通常由三種元素定義的,可以稱呼它們為依賴屬性。
- group:通常標識一個組織、公司或者項目。如org.jsoup
- name:一個工件的名稱唯一的描述了依賴。如::jsoup
- version:一個類庫的版本號。如1.9.2
如果是引入本地的依賴:
// 通過 files 方法添加jar文件作為依賴 dependencies{compile files('libs/jsoup.jar') }// 通過 fileTree 方法批量引入 dependencies{compile fileTree('libs') }// 只引入jar文件 dependencies{compile fileTree(include: ['*.jar'], dir: 'libs') }// 如果想要使用C或C++編譯的原生依賴庫.so文件,需要指明jniLibs的目錄。 android {sourceSets {main {jniLibs.srcDirs = ['libs']}} }4. 單項目中的依賴管理
如果在項目中創建了一個模塊作為依賴項目,那么需要在settings.gradle中添加該模塊,然后在應用模塊中使用它作為依賴。比如,在Android項目中,app模塊是我們的主模塊,library模塊是依賴模塊,也稱作依賴庫。
settings.gradle 中添加:
include ':app' ,' : library'app模塊下的build.gradle中添加:
dependencies{compile project(':library') }添加aar文件作為依賴:
// 告知Gradle查找具有特定名稱切擴展名為.aar的依賴庫 compile(name: 'libraryname', ext: 'aar')總結
以上是生活随笔為你收集整理的gradle 的 依赖管理(八)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Gradle增量编译(六)
- 下一篇: gradle挂接到构建生命周期(七)
