Android Studio 引入第三方jar包和lib工程【一】-- 初識maven倉庫

由於Studio比eclipse多了一步對工程構建的步驟,即爲build.gradle這個文件運行,因此其引入第三方開發jar包與lib工程對比Eclipse已完成不同,引入第三方jar與lib工程顯得並沒有那麼友好了,因爲過程中會涉及更多內容,而且你必須認清楚studio的目錄結構。
舉個栗子:
下圖是我在git上面下載的一個工程,工程中包括了一個lib工程和第三方jar包。
studio projest視圖
以上爲一個工程的projest視圖,由這個視圖可以看出,其中有兩個代碼模塊,一個是demo,一個是library,這兩個代碼模塊會被粗體文字標示出來。還有一個大的文件分支:External Libraries,由字面上的意思就是,第三方依賴的庫文件。然後,下面一推的jar包。
還有其他的一些文件,一些gradle腳本相關的文件,如果第一次使用studio你會很驚訝,究竟這些文件又啥用呢?其實除了demo和library之外的文件都是這個工程的構建文件,這個工程的建立依賴了這些文件。因此如果還不夠明白,我們可以切換到android工程視圖來看。

這裏寫圖片描述
上圖是一個工程的android視圖,由視圖可以看出,該工程下面包含了三個部分:demo,library,Gradle Scripts。
demo是主體工程,library是依賴庫,那麼Gradle Scripts就是這個工程的構建腳本了。Gradle Scripts下面可以到腳本的一些屬性設置項,settings決定了腳本目標模塊是誰,而三個不同的build.gradle則針對不同的模塊,針對其後的括號內容。

下圖是這個工程的的build.gradle(project)的內容:
這裏寫圖片描述
由上圖可知,負責構建project的gradle腳本,僅僅定義了gradle的版本,並且註釋着:

    // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

貌似這樣看來瞬間對studio的工程結構清晰了很多,可是問題又來了:在android視圖下面,第三方android的jar包去哪裏了,即External Libraries去哪裏?而在project視圖下,這些jar又是在哪裏下載的?

關於第一個問題,爲何在android視圖下面沒有顯示第三方jar包我還不清楚,是studio犯抽了還是故意隱藏掉,不得而知。
關於在哪裏下載,這個必須好好找找原因。
在第一次打開使用各個模塊的build腳本之後,你會發現,studio開始下載一些工具庫,包括在project視圖下面的第三方jar包,而這些jar在哪裏定義?哪裏下載呢?

切換回project視圖,你會發現這些第三方jar包都是被定義在各個模塊中的腳本中,而這些腳本都引用了倉庫,maven倉庫,又腳本上段可以看出這個倉庫名稱”jcenter()“.
這裏寫圖片描述

既然是一個代碼倉庫,那麼總會有下載地址的吧,所以在腳本里面,按住ctrl,選中”jcenter()“這個方法,跳到這個方法實現類裏面,如圖:
這裏寫圖片描述

找到這個方法定義之後,在往上找,找到該類:
這裏寫圖片描述

ctrl+點擊該類,你會發現驚喜。沒錯,倉庫的地址定義在這個類ArtifactRepositoryContainer裏面:

這裏寫圖片描述

然後打開以上網址,你會驚訝地發現,這個倉庫實在有太多代碼塊了,按着jar包名稱,可以慢慢找到之前定義好的jar包。
這裏寫圖片描述

至於他們如何對這些jar包進行下載的,有待進一步研究maven倉庫。

下一篇:引用私自maven倉庫中的jar包,介紹了我們如何引用自己再linux中搭建的maven倉庫中的jar包。

該工程爲git上的一個工程,git地址爲:https://github.com/daimajia/AndroidSwipeLayout

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章