前言
之前簡單說了下Maven的搭建,現在跟大家說一下如何將自己的aar傳到我們新搭建的maven倉庫里面,接下來我們就從最基本的新建一個library開始講述整個流程,話不多說,讓我們把愉快的開始吧。
准備工作
首先,開始之前,你需要新建一個library,打開你的Android studio ,選擇File -> New -> New Module:
接下來選擇Android Library:
然后寫上你的需要開源的代碼,之后便是重點了-配置項目
本地AAR
項目配置分兩種,一種是直接打出本地的aar包並指定路徑,另外一種是將打出的aar包上傳到我們搭建的本地的maven倉庫里面
打出aar到本地
你需要在你的library的build.gradle里面去配置這樣的代碼
切記,一定不要忘記添加:apply plugin: 'maven'
其中各參數代表的意義如下:
repository:代表本地的相對路徑,這里我寫的意思是當前module的上一層目錄新建一個名為repository的文件夾,生成的aar會放到這個路徑下面
pom.groupId:代表唯一標識(可以任意,不過一般都是模塊包名)
pom.artifactId: 項目名稱(可以任意,不過一般為類庫模塊名稱)
pom.version:庫的版本號
然后我點擊右上角的Sync now按鈕同步一下代碼,之后你會在你的右側的gradle菜單里面的你對應的module下面的Task下面出現了一個名為upload的文件夾,下面會有一個名為uploadArchives的task:
之后只要雙擊執行一下uploadArchives這個任務就會在對應的目錄下生成我們需要的aar了,具體如下截圖:
其中紅色標注的就是我們打出來的aar文件
接下來就是在項目中引用使用我們打出來的aar了
使用本地AAR
使用的時候需要在我們使用的module的build.gradle里面我們aar的路徑:
一般是文件的絕對路徑,只需引用到我們在生成aar的時候傳遞的那層路徑就行,在這里即是repository,然后你就可以像正常的引用jcenter中的庫一樣引用你打出來的aar庫了:
引用的各段參數形式是如下:
implementation 'groupId:artifactId:version' 對照關系如下圖:
本地AAR引用結果
至此,引用結束,讓我們來看下一下引用的效果吧:
提交到本地Maven倉庫AAR
剛才講述了如何配置項目打出本地的aar,並且如何引用本地的aar,以及個引用參數的含義,接下來講述一下如何配置項目將打出的aar上傳到aar倉庫里面
上傳配置
各參數含義與本地打包aar基本一致,但是多了一個配置maven用戶名密碼的選項authentication,而url也替換了了的maven的地址,我們替換的maven的地址是這樣的:http://localhost:8081/repository/maven-releases/,其中localhost:8081標識是服務器地址,maven-releases倉庫分組的名稱。
最后再雙擊uploadArchives這個task就可以上傳我們的庫到maven倉庫了,那我們趕緊去看看maven倉庫里我們的庫是什么樣子吧; 查看方式上一篇文章《Maven系列(一) -- maven倉庫的搭建》一文已經說過,在瀏覽器中輸入"localhost:8081"會看到你的maven倉庫的后台,然后點擊Browse:
因為我們是上傳到maven-release分組下面了,所以點擊release就可以看到我們的上傳的庫的版本列表:
如截圖紅框所示,這就是其中一個版本的所有文件,包括aar文件、aar的md5文件、aar的簽名文件、pom文件、pom文件的md5文件、pom文件的簽名文件等
使用Maven AAR
與引用本地aar的形式一樣,第一步需要在使用方的module下面的build.gradle文件里修改maven的url為我們的maven倉庫里庫的地址:
也即是我們上傳本地的庫倒排maven倉庫時候填寫的url地址,具體引用庫的方式和引用本地的aar文件一樣:
Maven倉庫引用結果
因為代碼一樣,當然運行效果也是一樣的:
完結
至此,我們講了兩種封裝開源庫的方式,一種是不太友好的本地aar的形式,第二種是上傳到maven私服倉庫里面,這樣一整個項目組或者公司內部就可以用這個庫了,減少代碼開發量,方便維護。
之后還會將如何將自己的開源庫上傳到谷歌的jcenter倉庫中,讓更多人使用你的開源庫,請持續關注,敬請期待哈
如要轉載,請注明出處,謝謝!
歡迎關注我的博客,地址如下:
博客園地址:www.cnblogs.com/zhengjunfei…
簡書地址:www.jianshu.com/u/da06e00ed…
掘金地址:juejin.im/user/5a2a55…
歡迎大家掃描關注我的微信公眾號,我會定期發布一些博客,分享一些知識點