手把手圖文并茂教你發布Android開源庫
經常逛github,總看到別人的readme中寫著compile ‘com.xxx:1.0.xxx’,這個已經越來越普及,個人,團人,公司都在用,雖然做android這么長時間了,但是發現自己好像不會,走了好多彎路,幾經折騰,這沒什么技術含量的玩意,還挺費時的,所以,下定決心,發布一個開源庫出來,也就是前面文章中介紹的SuperIndicator類庫之實現 《仿愛奇藝視頻,騰訊視頻,搜狐視頻首頁推薦位輪播圖介紹》 。Github: https://github.com/hejunlin2013/SuperIndicator
今天的Agenda如下:
- 主工程下的的build.gradle配置Maven,jcenter服務
- 創建一個類module
- 上傳類庫到jcenter倉庫 注冊/bintray賬號
- 添加package
- 添加bintray插件
- 編譯類庫
- 配置local.properties添加Bintray認證
- Android Studio終端使用命令上傳
- Bintray中同步到Jcenter,發送打包請求
- 升級類庫,再打包過程
背景
AndroidStudio是從Maven Repository 下載類庫的。基本上有jcenter和Maven Central這兩個服務器用于下載Android的類庫。 在工程(注意是主工程下的)中的build.gradle有一段腳本如下:
1.png
了解到Google studio團隊最先使用MavenCentral作為遠程倉庫下載我們用的編譯類庫的。 MavenCentral有一些問題。首先是對于開發者體驗不好,種種原因Google studio團隊遠程倉庫換成jcenter。 jcenter有一個打包工廠,每天特別多的類庫從此誕生,用于github上各種項目中。 像我們平時在app目錄下build.gradle中的dependencies中經常看到的:
2.png
這是什么意思呢?它實際上相當于
3.png
在這句代碼里面的GROUP_ID是com.hejunlin.superindicatorlibray,ARTIFACT_ID是superindicatorlibray(類庫名),VERSION是1.0.3。
-
創建一個類module
首先在Android Studio中點擊File菜單,選擇New->New Module,然后在彈出視圖中選擇Android Library,點擊Next后填寫庫的名稱。
這里寫圖片描述
創建完新的library后就可以寫公用部分的類代碼了,我這里是寫superindicatorlibray,寫好后,肯定還得有一個sample之類的測試這個類庫,我用的是默認app工程,里面有Activity之類的,接下來就在app工程引用這個類庫,在app下的build.gradle中添加依賴:
這里寫圖片描述
compile project(‘:superindicatorlibray’) //冒號后是你的類庫的名字 本地充分測試好后,接著你就上要開始上傳jcenter倉庫了。
本文出自逆流的魚,文章鏈接: http://blog.csdn.net/hejjunlin/article/details/52452220
-
上傳類庫到jcenter倉庫
那么如何上傳你的類庫到jcenter倉庫?
這里寫圖片描述
注冊Bintray用戶,Bintray是一個可以托管Android庫的平臺,JCenter則由Bintray進行維護的。打開 https://bintray.com/ ,進行注冊,然后登錄。
這里寫圖片描述
點擊add,然后如圖填寫:
這里寫圖片描述
填完后,如出現前面圖中那樣,有一個maven的倉庫,接下來要在這里添加package,
這里寫圖片描述
點擊Add New Package,如圖:
這里寫圖片描述
現在一個空倉庫和一個package已經創建好了,接下來要在studio,寫腳本配置,上傳類庫
-
添加bintray插件
在module中類庫下build.gradle中添加如下腳本
4.png
Bintray在上傳庫時需要一個pom文件,而這個文件可以讓Maven插件自動生成,但你還是需要給出groupId和version的值,將下面這兩行代碼添加到庫module的build.gradle中。
5.png
編譯類庫 寫過ant腳本的話,知道,ant中都是一個個target,而gadle中是task,所以接下來寫幾個task,對應分別分別生成Jar,Javadoc和JavadocsJar,將下面三個task代碼添加到庫module的build.gradle文件即可。
6.png
將本地編譯過的類庫及源碼及doc文件上傳到Maven倉庫中package中,需要將task添加到一個archive中,只需要向庫module下的build.gradle中添加如下代碼:
7.png
本文出自逆流的魚,文章鏈接: http://blog.csdn.net/hejjunlin/article/details/52452220
-
配置local.properties添加Bintray認證
接下來還要配置local.properties添加Bintray認證,git提交時,也會讓你填用戶名和密碼,那jcenter,如何配置呢? 我們須要本地local.properties文件下配置,如果沒有沒有就創建一個,放在主工程目錄下:
這里寫圖片描述
內容如下:
8.png
接下來說下這個apikey在哪?
這里寫圖片描述
這里寫圖片描述
輸入密碼,就可以得到這個key。接下來回到庫module下的build.gradle中添加如下腳本:
10.png
Android Studio終端使用命令上傳
最后我們在Android studio中Terminal命令行中,執行:
這里寫圖片描述
gradlew install
如果順利的話,過幾分鐘就會出現
這里寫圖片描述
恭喜你,編譯成功了,去類module看,多了個build的目錄,這里東西一會要上傳jcenter:
這里寫圖片描述
接下來需要把build成功的文件upload到bintray上,同樣在Terminal命令行,執行如下命令:
gradlew bintrayUpload
順利的話,也會出現,和上面的圖一樣的BUILD SUCCESSFUL
Bintray中同步到Jcenter,發送打包請求
這時檢查你在bintray創建的package,你會看到對應的版本號
這里寫圖片描述
點擊進去,如圖,首次沒有打包時,這里是一個add to jcenter的字樣,我這里是打了包的。就變成了下圖:
這里寫圖片描述
點擊那個箭頭的“add to jcenter”,接下來會跳到一個Request to include package GradientUI in jcenter的頁面,
這里寫圖片描述
填下你的groupId,直接send,就會發起一個打包版本的請求, 過幾個小時,通過jcenter那邊的審核就會在bintray上收到jcenter那邊的同意消息提醒。 恭喜你,你的類庫上傳到jcenter成功了!大家都可以用你的類庫了。
升級類庫,再打包過程
我們上傳完成后,如發現類庫中的一個bug,這就涉及到更新問題,那么怎么更新呢? 一句話,修改代碼后,改本地build.gradle的版本號,按上面的操作,執行gradlew install,gradlew bintrayUpload,到bintray上點擊“ Stage snapshots on oss.jfrog.org”同樣發送一個請求,不用幾分鐘,就可以用了,升級,不像首次提交那樣,非常快。馬上就你可以更新github上的引用版本號,瞬間心情爽爽噠。
這里寫圖片描述
來自:http://www.jianshu.com/p/f4ee4dc56b41