----《Android Gradle 權(quán)威指南》學(xué)習(xí)筆記
總目錄:Gradle 學(xué)習(xí)系列 -- 目錄
上一篇:Java Gradle 插件 -- 應(yīng)用及項目結(jié)構(gòu)
在項目中會不可避免地用到第三方庫,要想使用第三方依賴关带,需要告訴 Gradle 怎么找到這些依賴碍讯,也就是需要在項目進行配置。
一般情況下都是從倉庫中查找需要的 Jar 包士飒。在 Gradle 中要配置一個倉庫的 Jar 包依賴,首先得告訴 Gradle 使用類型的倉庫,這些倉庫的位置在哪里洪己。這樣 Gradle 才會知道從哪里去查找依賴的庫屡贺。
在 IDE 中默認(rèn)配置了一個 Maven 中心庫蠢棱,告訴 Gradle 可以在 Maven 中搜尋項目中依賴的 jar 包锌杀。在 build.gradle 中,配置的代碼如下所示:
repositories {
mavenCentral()
}
除此之外泻仙,也可以從 jcenter 庫糕再、ivy 庫、本地 Maven 庫(mavenLocal)玉转、自己搭建的 Maven 服務(wù)器中搜尋突想,甚至本地配置的文件夾也可以作為一個倉庫。所以說 Gradle 支持的倉庫非常豐富究抓。
在 Gradle 中也可以多個倉庫以前使用猾担,比如一些公共的開源框架可以從 Maven 上下載,一些私有的 jar 包可以從自己搭建的服務(wù)器中下載刺下。比如可以在 build.gradle 中做如下配置:
repositories {
mavenCentral()
maven{
url 'http://www.mavenurl.com'
}
}
- 有了倉庫绑嘹,就需要通過配置來告訴 Gradle 需要依賴什么,配置依賴是在 dependencies 模塊中橘茉。
(1) 比如在 IDE 中:
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
(2) 在 AndroidStudio —> app —> build.gradle 中:
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
關(guān)于 implementation 工腋、testImplementation 、testRuntimeOnly 這些語法在較早的 Gradle 版本中是 compile畅卓、testCompile擅腰、testRuntime。相關(guān)的語法需要在 Gradle 官方文檔中查找翁潘。androidTestImplementation 則需要在 Android Gradle 的文檔中查找趁冈。
- Java 插件也可以為不同的插件在編譯和運行時指定不同的依賴,比如對一個源碼集指定一個版本唐础,對另一個源碼集合指定另一個版本箱歧。在 build.gradle 中有以下代碼:
sourceSets {
vip {
}
}
sourceSets {
vip2 {
}
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
vipImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.0'
vip2Implementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
當(dāng)然了,上面的代碼有重復(fù)了一膨,可以寫成:
sourceSets {
vip {
}
vip2{
}
}
- 文件依賴:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/xxx.jar')
implementation files('libs/xxxApi.jar')
}
- 依賴一個項目:
dependencies {
implementation project(':xxx-debug')
implementation project(':xxx-release')
implementation project(':yyy')
implementation project(':yyy-debug')
}
依賴項目也可以在 IDE 或 AndroidStudio 中的圖形化界面中完成呀邢。