Android公共jar,使用JitPack管理Android项目中公共模块库
隨著項目的功能越來越多,代碼和模塊維護也越來越復雜,為了減少主項目的代碼量,一般都會將一些公共使用的類或者功能模塊抽離出來,與主項目解耦分離,當主項目中需要使用的時候,直接進行引用即可。
現在Android項目中一般使用Gradle進行依賴庫的管理,我們可以在項目中使用compile project (':moudleName')來直接引用本地的模塊庫,為了方便在其他項目引用這些公共模塊,我們將一些公共的模塊上傳到Github上面,然后通過發布到JitPack或者是jCenter上。不過因為jCenter中審核時間較長,而我們的公共庫主要為了方便項目組使用,而更加方便快捷的JitPack就成為我們的選擇。
單模塊的項目
1.創建項目后,選擇新建模塊,項目目錄如下所示:
2.修改項目的build.gradle文件,在dependencies中添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'。
注意:是在最外面的項目中添加,不是在app或者模塊中的build.gradle添加
3.修改需要上傳模塊的build.gradle文件,在頂部添加如下代碼:
// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// Your Group
group='com.github.username'
4.在Github中創建repository,如圖所示:
5.將代碼上傳到Github中,上傳后的代碼結構如圖所示:
6.打開項目的Github主頁,創建一個Release或Tag,如圖所示:
7.打開JitPack官網, 在輸入框中輸入Github項目主頁地址,點擊Look up按鈕,就可將上傳好的代碼發布到JitPack上面去:
8.代碼提交后,按照JitPack生成的配置信息,在引用的項目中通過Gradle引入即可。
在要引用項目的最外面的build.gradle文件中加入JitPack地址,如下所示:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
然后在需要引用的模塊或者app中加入依賴,格式如下:
dependencies {
...
compile 'com.github.User:Repo:Tag'
//比如例子:com.github.aijun198600:AJJitPackMoudle:1.0.0
}
如果對于依賴名稱不了解的話,可以打開上一步JitPack中顯示的Gradle build日志,在日志中找到如下的Build artifacts。
這樣子,一個單模塊的公共庫就已經發布了。
多模塊的項目(Multi-module)
當公共庫中有多個模塊的時候,甚至模塊之間有相互依賴的情況,是否可以繼續使用JitPack來進行管理呢? 答案當然是是的。下面我們將一步一步來構建多模塊項目的管理。
1.在項目中繼續新增一個另外的模塊,項目目錄如下所示:
2.與單模塊的第三部操作一樣,在新添加的模塊的build.gradle文件,在頂部添加如下代碼:
// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// Your Group
group='com.github.username'
3.將新修改的代碼上傳到Github中,并按照單模塊操作的第六步一樣,創建一個Release或Tag:
4.繼續按照單模塊操作的第七步一樣,打開JitPack官網, 在輸入框中輸入Github項目主頁地址,點擊Look up按鈕,就可將上傳好的代碼發布到JitPack上面去,可以看到新發布的版本已經出來了:
打開打包日志可以看到我們新增加的模塊已經打包成aar格式的包了:
可以看到新發布的包的依賴格式已經改變了,由原來的'com.github.User:Repo:Tag'改成了'com.github.User。Repo:Module:Tag',我們對模塊的引入必須改成如打包日志發布中的artifact id,如上圖中所圈中的部分。
5.添加項目之間的依賴,比如在ajlog模塊中添加ajotherlog的依賴,就需要修改ajlog模塊的build.gradle文件,在文件中加入依賴:
dependencies {
......
compile project (':ajotherlog')
}
Gradle Sync后然后將修改后的代碼上傳到Github上面,并創建一個新的Release或Tag:
然后重復第四步的操作,繼續打開JitPack官網,Look up一下,就可以看到我們新的版本已經build了。
在我們的測試項目中添加ajlog模塊的依賴:
compile 'com.github.aijun198600.AJJitPackMoudle:ajlog:1.0.2'
點擊Sync now,可以看到底部進度條,Gradle會自動下載ajlog模塊的依賴ajotherlog模塊。
至此,我們多模塊的公共庫也可以通過JitPack來進行管理。
依賴中包含jar包或者aar包
有時候公共庫中的模塊有依賴jar包或者aar包,或者是一些私有的代碼不便于公開,我們可以打包成jar或者aar包,作為其他模塊的依賴。我們也需要研究一種方式來通過JitPack管理jar包或者aar包。經過測試多次,仍然有一些問題無法解決,期待有人研究出解決方案。
有更多問題或者好的方法可以在我的或者博瑞立方終端組中進行留言交流。
總結
以上是生活随笔為你收集整理的Android公共jar,使用JitPack管理Android项目中公共模块库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 娄底八中的初中计算机考试,众人同心勤耕耘
- 下一篇: android sina oauth2.