對(duì)我自己掌握的關(guān)于gradle相關(guān)的知識(shí)進(jìn)行一個(gè)整理。
下面是Android studio里面比較重要的gradle文件。會(huì)逐一的進(jìn)行解析。
1. build.gradle(模塊里面)
里面的具體內(nèi)容參考我之前寫(xiě)的一篇博客:詳解build.gradle文件。這個(gè)文件里面是對(duì)當(dāng)前的module進(jìn)行配置。
2. build.gradle(項(xiàng)目里面)
這個(gè)文件添加所有子項(xiàng)目/模塊通用的配置選項(xiàng)??梢钥吹剿詣?dòng)生成的里面添加了gradle的依賴,我的版本是7.2.1。當(dāng)我們需要清除gradle生成的配置文件,也就是build文件夾,就會(huì)執(zhí)行
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
}
// 運(yùn)行g(shù)radle clean時(shí),執(zhí)行此處定義的task任務(wù)。
// 該任務(wù)繼承自Delete,刪除根目錄中的build目錄。
// 相當(dāng)于執(zhí)行Delete.delete(rootProject.buildDir)。
// gradle使用groovy語(yǔ)言,調(diào)用method時(shí)可以不用加()。
task clean(type: Delete) {
delete rootProject.buildDir
}
3. gradle.properties
主要是增加和修改一些可以在構(gòu)建過(guò)程中直接使用的參數(shù)。具體怎么使用,暫時(shí)沒(méi)有研究,也許未來(lái)會(huì)進(jìn)行補(bǔ)充。
4. setting.gradle
這個(gè)文件是我今天之前了解最少的,今天查了不少其他人的博客,終于大致弄懂了一些。
首先第一個(gè)注意事項(xiàng):在gradle7.1以后的版本中,發(fā)生了功能模塊遷移。
原來(lái)在工程build.gradle的buildscript和allprojects移動(dòng)至setting.gradle并改名為pluginManagement 和dependencyResolutionManagement。里面的東西依舊可以按照原來(lái)的copy過(guò)來(lái)。
Android Gradle 7.1+新版本依賴變化
下面我講對(duì)里面的相關(guān)配置進(jìn)行解析:
-
pluginManagement :
pluginManagement{}
語(yǔ)法塊是專(zhuān)門(mén)用于管理整個(gè)項(xiàng)目插件的,只能出現(xiàn)在settings.gradle
文件或”初始化腳本“中,并且在settings.gradle
文件中pluginManagement{}
必須是文件中的第一個(gè)塊。- repositories{}語(yǔ)法塊,用于指定倉(cāng)庫(kù),有以下常用選項(xiàng):
- mavenLocal():本地Maven倉(cāng)庫(kù)( ${user.home}/.m2/repository )
- mavenCentral():中央Maven倉(cāng)庫(kù)( http://repo1.maven.org/maven2 )
- maven { url ‘https://…’ }:可用于Maven私服、鏡像服務(wù)器等
- ivy {url “…/local-repo”}:本地的ivy倉(cāng)庫(kù)
- ivy {url “http://repo.mycompany.com/repo”}:遠(yuǎn)程的ivy倉(cāng)庫(kù)
- google():google倉(cāng)庫(kù)(https://maven.google.com)
- dependencies{}語(yǔ)法塊,用于指定要使用的插件,由classpath關(guān)鍵字指定,格式為:classpath ‘group:name:version’
Gradle入門(mén)教程
那么buildscript中的repositories和allprojects的repositories的作用和區(qū)別是什么呢?
-
buildscript
里是gradle腳本執(zhí)行所需依賴,分別是對(duì)應(yīng)的maven庫(kù)和插件 -
allprojects
里是項(xiàng)目本身需要的依賴,比如我現(xiàn)在要依賴我自己maven庫(kù)的toastutils
庫(kù),那么我應(yīng)該將maven {url 'https://d l.bin tray.com/calvinning/maven'}
寫(xiě)在這里,而不是buildscript
中,不然找不到。
buildscript和allprojects的作用和區(qū)別是什么?
- repositories{}語(yǔ)法塊,用于指定倉(cāng)庫(kù),有以下常用選項(xiàng):
上圖應(yīng)該和自動(dòng)生成的有些許區(qū)別。多了下面的代碼。
jcenter()
maven { url 'https://jitpack.io' }
這里就是導(dǎo)入了jitpack.io。
科普記錄:在之前的Android gradle里面生成的應(yīng)該是jcenter(),但是現(xiàn)在MavenCentral,原因是Jcenter服務(wù)即將關(guān)閉,谷歌沒(méi)有收購(gòu)他,所以改用mavenCentral,所以之前很多第三方庫(kù)都不能使用了,不過(guò)很多個(gè)人開(kāi)發(fā)者將自己開(kāi)發(fā)的庫(kù)也移植到了新的服務(wù)器。例如jitpack.io。所以我們可以通過(guò)上面的代碼導(dǎo)入地址。
Jcenter服務(wù)即將關(guān)閉,改用mavenCentral
下面的兩行代碼理解應(yīng)該是比較簡(jiǎn)單的。include是groovy里面的代碼。
在 Groovy 語(yǔ)法中 , 就是調(diào)用了 include 方法 , 傳入了 ‘:app’ 字符串作為參數(shù) ;
當(dāng)我們?cè)陧?xiàng)目中new 一個(gè)module時(shí),下面會(huì)增加一個(gè)新的include。
附上我看到的別人的博客記錄:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-450951.html
AndroidStudio gradle 7.0+配置說(shuō)明
本文鏈接:https://blog.csdn.net/Jun_P/article/details/126792012文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-450951.html
到了這里,關(guān)于AndroidStudio里面gradle相關(guān)配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!