Android 發(fā)布開源庫到 JitPack嘲碧、jCenter

JitPack、jCenter是我們常用的發(fā)布Android開源庫的網(wǎng)站父阻,發(fā)布成功后就可以在Android Studio中通過Gradle方便的引用到項目中了愈涩,相比Eclipse時代要方便的多,對于使用者確實簡單了加矛,但對于發(fā)布者來說可能還略有坎坷履婉,這里記錄下發(fā)布的過程,以及遇到的坑斟览。

發(fā)布到JitPack

一谐鼎、

準備好項目以及要發(fā)布的開源庫,并先將其上傳到github趣惠。



有一點需要注意,上傳到JitPack的開源庫默認使用項目的名稱身害,而不是要發(fā)布的開源庫的名稱味悄,所以盡量給項目起一個比較優(yōu)雅的名字(這里我們使用同名)。

二塌鸯、

這里我們要用到一個的插件android-maven-gradle-plugin

1侍瑟、、在項目的build.gradle添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5',如下圖:


2涨颜、在要上傳的library的build.gralde文件添加如下代碼:

// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// Your Group
group='com.github.username'

其中username需要替換為你在github上的用戶名
如下圖所示:



記得將修改后的代碼提交到github哦费韭。

三、

打開項目的github主頁庭瑰,創(chuàng)建一個Release或Tag星持,可按如下步驟:
1、


2弹灭、

3督暂、

4、

四穷吮、

1逻翁、將項目的倉庫提交到JitPack:https://jitpack.io/


2、版本提交完成后捡鱼,JitPack會自動生成引用該library的配置信息:

最后就可以愉快的在項目中使用了八回。

發(fā)布到j(luò)Center

一、

準備好要發(fā)布的library:


二驾诈、

1缠诅、jCenter屬于bintray旗下的一個倉庫,所以先要注冊賬號哦翘鸭,https://bintray.com
2滴铅、按照如下步驟得到API Key,在上傳library的時候需要用到就乓。


3汉匙、創(chuàng)建一個名字為maven的Repository

4、在maven倉庫中創(chuàng)建一個package生蚁,注意package的名字和要發(fā)布的library的名字相同

三噩翠、

關(guān)于上傳可以使用gradle-bintray-plugin插件,但是略復(fù)雜邦投,所以我們采用bintray-release
1伤锚、在項目的build.gradle添加bintray-release的classpath:classpath 'com.novoda:bintray-release:0.3.4',如下圖:


2志衣、在要上傳的library的build.gralde文件添加如下代碼:

apply plugin: 'com.android.library'
//新添加
apply plugin: 'com.novoda.bintray-release'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile 'com.squareup.okhttp3:okhttp:3.5.0'
}

//新添加
publish {
    userOrg = 'othershe' //在https://bintray.com上注冊的用戶名
    groupId = 'com.othershe' //jCenter上的路徑
    artifactId = 'dutil' //要上傳的library名稱(和二屯援、4中的package相同)
    publishVersion = '1.0.0' //library的版本號
    desc = 'A download library,that is based on okhttp' //library的簡單描述
    website = 'https://github.com/Othershe/DUtil' //library的開源地址念脯,例如在github上的地址
}

到這里必須的代碼配置就完了狞洋,主要的注釋都有了,按照上邊的編寫即可绿店。

四吉懊、

1庐橙、可以在AndroidStudio的Terminal中執(zhí)行命令:gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
其中PbintrayUser代表注冊的用戶名,PbintrayKey就是上邊得到的API Key借嗽,PdryRun是一個配置參數(shù)态鳖,當(dāng)為true的時候,會運行所有的環(huán)節(jié)恶导,但是不會上傳浆竭,如下圖:


2、不出意外的話等待2到3分鐘即可上傳成功甲锡。但是呢這一步往往有許多的坑呀兆蕉,這里簡單的記錄下:

  • 坑1:



    這個好處理,主要是因為lint檢查時報錯缤沦,因此中斷了整個編譯過程虎韵,在要上傳的library的build.gralde文件的android標(biāo)簽里添加如下代碼即可。

android {
    lintOptions {
        abortOnError false
    }
}
  • 坑2:



    網(wǎng)上大部分辦法都說在項目的build.gradle文件的allprojects 標(biāo)簽里添加如下代碼:

allprojects {
    tasks.withType(Javadoc) {
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

之前上傳另外一個項目確實可行缸废,但這次確無效了包蓝,最后找到了如下方案,在項目的build.gradle文件的allprojects 標(biāo)簽里添加如下代碼:

allprojects {
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

解決了遇到的問題企量,再執(zhí)行上傳命令测萎,終于成功了:


五、

上傳成功后就可以在maven倉庫中看到我們的library:



點進去則可以看到詳情:



此時我們還不能在項目中引用該庫届巩,要將其添加到j(luò)Center硅瞧,點擊上圖右下角的按鈕:

填寫一些對library的描述,然后發(fā)送恕汇。等待數(shù)小時審核通過后會郵件通知你的腕唧,之后就可以在項目中引用了:


到這里兩種發(fā)布方式就介紹完了,布到j(luò)Center的步驟雖然也不算復(fù)雜瘾英,但很少能一次發(fā)布成功枣接,總會被一些問題折騰半天。相比之下發(fā)布到JitPack要簡單的多缺谴,最重要的是省時省力但惶,沒有那么多的問題困擾,真是給力呀湿蛔!如果你也有發(fā)布開源庫的需求膀曾,選擇哪種方式相信你也有答案了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阳啥,一起剝皮案震驚了整個濱河市添谊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苫纤,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卷拘,居然都是意外死亡喊废,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門栗弟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來污筷,“玉大人,你說我怎么就攤上這事乍赫“曛” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵雷厂,是天一觀的道長惋增。 經(jīng)常有香客問我,道長改鲫,這世上最難降的妖魔是什么诈皿? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮像棘,結(jié)果婚禮上稽亏,老公的妹妹穿的比我還像新娘。我一直安慰自己缕题,他們只是感情好截歉,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烟零,像睡著了一般瘪松。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓶摆,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天凉逛,我揣著相機與錄音,去河邊找鬼群井。 笑死状飞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的书斜。 我是一名探鬼主播诬辈,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荐吉!你這毒婦竟也來了焙糟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤样屠,失蹤者是張志新(化名)和其女友劉穎穿撮,沒想到半個月后缺脉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡悦穿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年攻礼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栗柒。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡礁扮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞬沦,到底是詐尸還是另有隱情太伊,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布逛钻,位于F島的核電站僚焦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绣的。R本人自食惡果不足惜叠赐,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屡江。 院中可真熱鬧芭概,春花似錦、人聲如沸惩嘉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽文黎。三九已至惹苗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耸峭,已是汗流浹背桩蓉。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劳闹,地道東北人院究。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像本涕,于是被迫代替她去往敵國和親业汰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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