1. 程式人生 > >androidStudio 多專案依賴同一個module

androidStudio 多專案依賴同一個module

我們都知道,androidStudio(後面簡稱AS)在匯入一個外部的本地module時,AS採用的是複製一份到當前專案目錄下這種策略。這種方式在開發一個專案時並不會有什麼大問題,不過,在多個專案都引用同一個或幾個module時就會出現大問題,這種公用的module通常都是框架類或工具類module,如果每個專案都複製一份module到自己專案目錄下,如果某天發現module中有幾個bug需要修改,你就會發現,你不得不去每個目錄下修改module,如果是修改的東西比較多的話,絕對是欲哭無淚。

上述就是研究多專案依賴同一個module這個問題的起因,下面直接說說怎麼解決(目前官方似乎沒有直接支援的方法,不過我相信以後肯定會支援),首先為了方便維護,我們新建一個專案,這個專案下只有公用的module,不放任何application

然後只需要在其他引用這些module的工程settings.gradle中新增如下配置


這樣,我們就可以像之前那樣使用本地依賴的方法直接在當前專案的application中新增這些module依賴了


原理其實也非常簡單,就是我們強制新增並修改了引入module和module的路徑,完成配置並clean後目錄變成如下結構


Driver目錄就是專案工程目錄,可以發現,配置後,Driver下專案引用的幾個module都被成功引入,只不過和之前直接匯入module不同,他們不再是在Driver目錄下了,而是和Driver平級,當然,這並不會影響引用。

注意點:這些看上去和Driver平級的幾個module,其實在真實的檔案目錄下是不存在的,也就是說你直接進入硬碟檢視檔案是沒有這幾個目錄的,只有在AS中才能看到,這些module的真實目錄就是他們自己所在的lirary專案目錄,這樣就保證了多個專案同步使用一個module。配置settings.gradle中module的File的路徑時需要注意,裡面應該填寫的是module的真實目錄,因為我的module根目錄和專案是在同一個工作空間的,如果你的module的根目錄和專案不再同級目錄,則應該做出對應修改。

補充:發現一個額外問題,這樣配置後,如果你的公用library是上傳了git的話,你的專案如果沒有配置git,然後你配置git時會發現怎麼提交都是顯示的上傳library到git,這時只需要自己手動新建一個倉庫就可以了


這樣我們就可以像提交正常專案一樣了