Android Studio項目中三種依賴的添加方式


通常一個AS項目中的依賴關系有三種,一是本地依賴(主要是對本地的jar包),二是模塊依賴,三是遠程依賴;添加這些依賴的目的在於上我們想要在項目的某一個模塊中使用其中的功能,比如okttp這個網絡框架庫,如果我們想要在項目的app模塊下使用這個庫的功能,則需要在app模塊的build.gradle文件中添加相應的依賴,Gradle插件首先會在本地文件系統上去查找是否存在,如果不存在,然后會到全局的build.gradle文件中指定的代碼倉庫中去獲取,需要聯網,下面是指定的項目可以在哪些代碼倉庫當中去獲取開源項目

 
全局的build.gradle文件中的部分

三種依賴關系的添加是在模塊中的build.gradle文件中的dependencies閉包下進行添加的

 
模塊下的build.gradle文件中的dependencies閉包

implementation fileTree(include: ['*.jar',dir:'libs'])這行語句的作用是一個本地依賴的聲明,表示的含義是將當前項目中的libs目錄下的所有后綴名為.jar文件都添加到項目的構建路徑當中去,可以理解為本地依賴聲明,但不是本地依賴的添加;本地依賴的添加較為簡單,只需要將jar文件放置到相應模塊(哪一個模塊想用使用這個jar包提供的功能,就需要在該模塊下的build.gradle文件中添加依賴)下的libs目錄下,然后同步一下,看個添加本地依賴的例子吧:

首先來看一下沒有添加本地依賴前模塊的build.gradle文件的dependencies閉包的內容

 
沒有添加本地依賴前的閉包的內容

記着它的樣子,然后由於我們想要在app模塊下使用jar包中的功能,首先我們將jar復制到app模塊下的libs目錄中,如圖

 
將jar包添加到libs目錄下\

不知道大家注意到沒有,此時jar包是不可以點擊開的,表示這個jar包還有添加到當前項目的構建目錄當中,可以理解為沒有在該模塊下添加本地依賴。接下來我們右鍵單擊jar包,找到Add As Library選項,進行同步

 
添加本地依賴

當我們將jar包進行依賴添加后,此時jar文件是可以點擊開來的,而且此時我們再次右鍵jar文件時,Add As Library選項找不到了哦。如果你覺得這樣會比較麻煩,那我們可以直接點擊同步小按鈕,不再右鍵單擊jar包,也可以到達目的,下面是同步小按鈕

 
同步小按鈕

添加本地依賴之后的jar文件是可以展開的

 
同步之后的jar文件

最后再來看一下dependencies閉包下的內容改變了什么

 
添加本地依賴后的dependencies內容

上面就是本地依賴的添加方式,其實我們可以直接書寫多出來的語句添加到dependencies閉包當中。接下來再來學習一下模塊依賴的可視化添加,點擊Project Structure按鈕,出現以下界面

 
Project Structure

然后點擊添加模塊依賴

 
模塊依賴添加

一點擊模塊依賴,出現以下界面,說當前項目沒有可以引用的模塊

 
模塊依賴添加三

這是為什么呢?我們能夠添加的模塊依賴智能是當前項目所包含的,即右邊的Modules中列出的模塊。這個時候我們需要將模塊復制到當前項目,比如我們添加CnwinLib模塊,首先要將庫模塊復制到當前項目,然后在setting.gradle文件指明當前項目包含的模塊

 
將庫模塊復制到當前項目

在setting.gradle文件中指明當前項目包含的模塊

 
指明當前項目包含的模塊

此時我們在來添加模塊依賴

 
成功了

然后點擊ok,Gradle會幫我同步,此時再來看一下dependencies閉包的內容

 
模塊依賴語句

implementation project(':CnwinLib')就是用於添加模塊依賴的語句,因此我們可以直接書寫這個語句,不需要點擊來點擊去的,前提是如果你記得語句的格式。對於遠程依賴的添加是類似的,就不多說。 

總結一下,添加本地依賴的語句是implementation files('file-name'),添加模塊依賴的語句implementation project(':模塊名'),遠程依賴添加的語句implementation '那個依賴地址'。

注意點,如果模塊要想使用另一個模塊,必須進行模塊依賴的引用;遠程依賴是在全局的build.gradle文件中的代碼倉庫當中去獲取的,如果我們要添加的遠程依賴的開源庫所在的托管倉庫不在我們項目的全局的build.gradle文件中聲明過,那么我們是會依賴添加失敗的哦。

作者:拜托科技
鏈接:https://www.jianshu.com/p/04159a2159b4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM