Android 寫自己的開源庫昨登,發(fā)布到 JitPack.io

博客地址首發(fā):http://icodeyou.com/2015/12/23/2015-12-23-AndroidLibraryJitPack

之前一直在用別人的開源庫蕴掏,尤其有了 Gradle 后,依賴別人的開源庫就更簡單了缚窿,只需要在項目的 build.gradle 文件中添加上類似 compile 'com.github.icodeu:CommonAdapter:v1.0' 的就好了棘幸,剩下的就可以交給 Gradle 幫助我們完成 library 依賴了。但這個是怎么做的倦零,如果你也想學(xué)習(xí)怎么寫自己的 library误续,然后能夠提供給別人使用的話吨悍,可跟著本篇博客學(xué)習(xí)一下。本篇分為兩個部分蹋嵌,首先講解如何單純的寫個 library 并在本地自己依賴著(玩)畜份,然后進入主題講解怎么使用 JitPack.io 來發(fā)布我們自己的 library,所以如果你已經(jīng)知道了怎么寫 library欣尼,可以直接跳到第二部分。

我也試圖在網(wǎng)上找一些關(guān)于使用 JitPack.io 的教程停蕉,但是搜出來的基本是這篇的復(fù)制品愕鼓,根本沒講什么實質(zhì)性的東西,所以一切只好自己來了慧起。

如何寫 library

在本節(jié)菇晃,我們一起來新建個 library,打開 Android Studio蚓挤,New Project磺送,在此工程名為 Hellolibrary,此后一直點擊 next 直至 finish 即可灿意。此時應(yīng)該是只有一個 module 名為 app估灿,一會我們會把它當(dāng)做依賴 library 的示例模塊來使用,暫時先不管缤剧,我們先來創(chuàng)建一個 library馅袁,F(xiàn)ile->New->Module,選擇 Android library荒辕,之后起個名字汗销,在此叫做 library,finish 即可抵窒,此時工程目錄如下所示弛针,其中 app 用來依賴使用 library。

img
img
img
img

怎么指定一個 module 到底是普通的 application 還是 library 呢李皇?打開 module 對應(yīng)的 build.gradle 文件削茁,看第一行 apply plugin: xxx,如果是 application 的話掉房,plugin 就是 'com.android.application'付材,library 的話就是 'com.android.library',就這么簡單圃阳,如下圖:

img
img

接下來在 library 中 New->Java Class厌衔,在此就是演示,所以我們就盡可能把不重要的東西簡單化捍岳,名字就叫做 CustomUtil富寿,只有一個靜態(tài)方法睬隶,如下圖所示:

img

其實到此最簡單的 library 就寫好了,下面就在 app 中來依賴剛才的這個 library 看看效果页徐。打開 app 的 build.gradle苏潜,在最后的 dependencies 節(jié)點添加一行,compile project(':library')变勇,再 Sync 一下 Gradle即可恤左,這樣 app 就完成了對 library 的依賴。另外還有一種方法去依賴 library搀绣,右鍵 app 這個 module蹂喻,選擇 Open Module Settings澄干,切換到最后一個Tab:Dependencies,點擊左下角的加號->Module dependency->選擇 library,這樣也能完成 app 對 library 的依賴旷赖。

img

那怎么能在代碼上看出來 app 確實成功依賴了 library 呢撰洗?我們打開 app 中的 MainActivity误澳,輸入 CustomUtil 試一下兼蕊,如果發(fā)現(xiàn)像下圖那樣給你智能提示了,那就OK了贸毕,從下圖還能看到 CustomUtil 類所在的包是 com.icodeyou.library郑叠。我們調(diào)用一下它吧,如下圖也很簡單明棍,不解釋了锻拘。

img
img

到此為止我們就自己寫了一個最簡單的 library 并完成了自己本地的依賴調(diào)用,這都是自己玩玩击蹲,那怎么能讓別人也用上咱們剛才那個高大上的 library 呢署拟,繼續(xù)往下看。

如何在 JitPack.io Publish Android Library

首先來概覽一下我們要完成的最終效果是什么歌豺,我之前有一個開源庫推穷,地址在 https://github.com/icodeu/CommonAdapter,打開 JitPack.io 的網(wǎng)站类咧,將我的開源庫地址粘貼進去馒铃,Look up->Get it,即可看到熟悉的 compile 了痕惋,按照下面那個提示復(fù)制到相應(yīng)的 build.gradle 文件中就可以完成 library 的依賴了区宇,不信你試試啊。

img

下面就來具體講解一下如何將剛才本地的 library 與 JitPack.io 結(jié)合起來值戳,JitPack 的官方文檔在這里 Publish Android library

打開 Project 的 root build.gradle议谷,在 dependencies 節(jié)點添加一個 classpath:classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3',再打開 library 的 build.gradle堕虹,在文件起始添加如下兩行 apply plugin: 'com.github.dcendents.android-maven' group='com.github.icodeu'(注意這是你GitHub的用戶名)卧晓,兩個文件的示意圖如下:

img
img

下面檢查你的Project目錄是否存在 gradle/wrapper/gradle-wrapper.jar芬首、gradle-wrapper.properties 這兩個文件,如果存在可跳過下面這步逼裆,如果不存在郁稍,請按下面的進行操作。打開當(dāng)前項目的 Terminal胜宇,先后執(zhí)行 gradle wrapper./gradlew install 兩個命令耀怜,如下圖:

img
img
img

從 JitPack 首頁也能看出來,其實我們是要粘貼一個 GitHub 項目地址進去桐愉,所以我們接下來就要把 library 先上傳到 GitHub 上面财破。

在 GitHub 上新建一個倉庫,這里命名為 HelloLibrary仅财,之后 clone 到本地,再把 Project 目錄所有的文件復(fù)制進去碗淌,比如在我這里盏求,倉庫 clone 到了桌面的 HelloLibrary 文件夾,如下圖:

img
img

把這些文件 push 到 GitHub 上亿眠,push 成功之后碎罚,點擊項目的 releases->Create a new release,填寫好版本號等內(nèi)容纳像,如下圖:

img
img

填寫好后點擊 Publish release 即可荆烈,然后我們復(fù)制下圖紅框中的項目地址,粘貼到 JitPack.io 上面竟趾,Look up->Get it憔购,在下面就能看到使用方法了。

img
img

首先打開 Project root 的 build.gradle岔帽,在 repositories 節(jié)點添加上 maven { url "https://jitpack.io" }玫鸟,之后打開想依賴這個 library 的模塊,比如這里我們是 app 這個 module犀勒,在 dependencies 節(jié)點添加上 compile 'com.github.icodeu:Hellolibrary:v1.0'屎飘,Sync 一下 Gradle,這樣就可以了贾费。如果 Sync 成功了钦购,那我們在 app 中就成功依賴了 GitHub 上的 library,此時可以打開 app 的 Module Settings褂萧,看一下它的 Dependencies押桃,如下圖:

img
img
img

好了,到此就完成了使用 JitPack.io + GitHub 發(fā)布開源庫了导犹,相比 jCenter 和 MavenCentral 方式簡直爽的不要不要的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怨规,一起剝皮案震驚了整個濱河市陌宿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌波丰,老刑警劉巖壳坪,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掰烟,居然都是意外死亡爽蝴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門纫骑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝎亚,“玉大人,你說我怎么就攤上這事先馆》⒖颍” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵煤墙,是天一觀的道長梅惯。 經(jīng)常有香客問我,道長仿野,這世上最難降的妖魔是什么铣减? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮脚作,結(jié)果婚禮上葫哗,老公的妹妹穿的比我還像新娘。我一直安慰自己球涛,他們只是感情好劣针,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著亿扁,像睡著了一般酿秸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魏烫,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天辣苏,我揣著相機與錄音,去河邊找鬼哄褒。 笑死稀蟋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呐赡。 我是一名探鬼主播退客,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了萌狂?” 一聲冷哼從身側(cè)響起档玻,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茫藏,沒想到半個月后误趴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡务傲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年凉当,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片售葡。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡看杭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挟伙,到底是詐尸還是另有隱情楼雹,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布尖阔,位于F島的核電站贮缅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏诺祸。R本人自食惡果不足惜携悯,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一祭芦、第九天 我趴在偏房一處隱蔽的房頂上張望筷笨。 院中可真熱鬧,春花似錦龟劲、人聲如沸胃夏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰禀。三九已至,卻和暖如春蚕愤,著一層夾襖步出監(jiān)牢的瞬間答恶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工萍诱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悬嗓,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓裕坊,卻偏偏與公主長得像包竹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容