如何發(fā)布你的GitHub開(kāi)源庫(kù)

如果你想在Android Studio中引入一個(gè)library到你的項(xiàng)目,你只需添加如下的一行代碼到模塊的build.gradle文件中。

dependencies {
    compile 'com.github.xuerui1993:AutoViewPagerLibrary:v1.3'
}

就是如此簡(jiǎn)單的一行代碼,你就可以使用這個(gè)library了。

酷呆了。不過(guò)你可能很好奇Android Studio是從哪里得到這個(gè)library的。這篇文章將詳細(xì)講解這是怎么回事,包括如何把你的庫(kù)發(fā)布出去分享給世界各地的其他開(kāi)發(fā)者,這樣不僅可以讓世界更美好,還可以耍一次酷。

Android studio 是從哪里得到庫(kù)的?

先從這個(gè)簡(jiǎn)單的問(wèn)題開(kāi)始,我相信不是每個(gè)人都完全明白Android studio 是從哪里得到這些library的。莫非就是Android studio 從google搜索然后下載了一個(gè)合適的給我們?

呵呵,沒(méi)那么復(fù)雜。Android Studio是從build.gradle里面定義的Maven 倉(cāng)庫(kù)服務(wù)器上下載library的。Apache Maven是Apache開(kāi)發(fā)的一個(gè)工具,提供了用于貢獻(xiàn)library的文件服務(wù)器??偟膩?lái)說(shuō),只有兩個(gè)標(biāo)準(zhǔn)的Android library文件服務(wù)器:jcenter 和 Maven Central。

jcenter

jcenter是一個(gè)由 bintray.com維護(hù)的Maven倉(cāng)庫(kù) 。你可以在這里看到整個(gè)倉(cāng)庫(kù)的內(nèi)容。

我們?cè)陧?xiàng)目的build.gradle 文件中如下定義倉(cāng)庫(kù),就能使用jcenter了:

allprojects {
    repositories {
        jcenter()
    }
}

Maven Central

Maven Central 則是由sonatype.org維護(hù)的Maven倉(cāng)庫(kù)。你可以在這里看到整個(gè)倉(cāng)庫(kù)。

注:不管是jcenter還是Maven Central ,兩者都是Maven倉(cāng)庫(kù)

我們?cè)陧?xiàng)目的build.gradle 文件中如下定義倉(cāng)庫(kù),就能使用Maven Central了:

allprojects {
    repositories {
        mavenCentral()
    }
}

注意,雖然jcenter和Maven Central 都是標(biāo)準(zhǔn)的 android library倉(cāng)庫(kù),但是它們維護(hù)在完全不同的服務(wù)器上,由不同的人提供內(nèi)容,兩者之間毫無(wú)關(guān)系。在jcenter上有的可能 Maven Central 上沒(méi)有,反之亦然。

除了兩個(gè)標(biāo)準(zhǔn)的服務(wù)器之外,如果我們使用的library的作者是把該library放在自己的服務(wù)器上,我們還可以自己定義特有的Maven倉(cāng)庫(kù)服務(wù)器。Twitter的Fabric.io 就是這種情況,它們?cè)?a target="_blank" rel="nofollow">https://maven.fabric.io/public上維護(hù)了一個(gè)自己的Maven倉(cāng)庫(kù)。如果你想使用Fabric.io的library,你必須自己如下定義倉(cāng)庫(kù)的url。

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

然后在里面使用相同的方法獲取一個(gè)library。

dependencies {
    compile 'com.crashlytics.sdk.android:crashlytics:2.2.4@aar'
}

這里向大家推薦一個(gè)免費(fèi)的倉(cāng)庫(kù)服務(wù)器,JitPack,同理需要定義jitpack的服務(wù)器地址

 allprojects {
    repositories {
    jcenter()
    maven {
        url 'https://jitpack.io' 
    }
 }

然后在app的build.gradle文件下配置

dependencies {
    compile 'com.github.xuerui1993:AutoViewPagerLibrary:v1.3'
}

這就是為什么很多github開(kāi)源庫(kù)上需要加上這一行配置了。

了解aar文件

aar文件時(shí)在jar文件之上開(kāi)發(fā)的。之所以有它是因?yàn)橛行〢ndroid Library需要植入一些安卓特有的文件,比如AndroidManifest.xml,資源文件,Assets或者JNI。這些都不是jar文件的標(biāo)準(zhǔn)。

因此aar文件就時(shí)發(fā)明出來(lái)包含所有這些東西的??偟膩?lái)說(shuō)它和jar一樣只是普通的zip文件,不過(guò)具有不同的文件結(jié)構(gòu)。jar文件以classes.jar的名字被嵌入到aar文件中。其余的文件羅列如下:

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/*.jar (optional)
  • /jni/<abi>/*.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

可以看到.aar文件是專門(mén)為安卓設(shè)計(jì)的。在AndroiStudio中你創(chuàng)建一個(gè)Libaray項(xiàng)目,就會(huì)自動(dòng)創(chuàng)建一個(gè)arr文件了

上傳你的項(xiàng)目到開(kāi)源庫(kù)

  1. 首先你得將你的項(xiàng)目變成Libaray類型的,然后發(fā)布到GitHub上.這里我就不多少怎么發(fā)布到github上了.
    2.打開(kāi)你的GitHub項(xiàng)目,生成Release文件
1507191077(1).jpg
1507191161(1).jpg

3.填寫(xiě)版本號(hào),和一些描述信息

1507191288(1).jpg

4.發(fā)布完成后,打開(kāi)https://jitpack.io/,然后輸入你的github項(xiàng)目地址

1507196171(1).jpg

5.得到你的項(xiàng)目的服務(wù)器地址

1507191532(1).jpg

6.按照上面的操作,你就可以在你的項(xiàng)目中添加依賴使用了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容