Android Studio 上傳aar(Library)到JCenter

目的

這篇文章介紹通過(guò)Gradle把開(kāi)源項(xiàng)目發(fā)布到公共倉(cāng)庫(kù)JCenter中晓铆,發(fā)布自己的android library(也就是aar)到公共的jcenter倉(cāng)庫(kù)。
為什么選擇JCenter,因?yàn)镴Center現(xiàn)在是Android Studio中repositories的默認(rèn)節(jié)點(diǎn)了,之前是Maven的,不過(guò)JCenter是兼容Maven的。

環(huán)境

Android Studio 2.2.3

參考資料
http://www.reibang.com/p/c4f4894ad215
http://www.reibang.com/p/6a6eca8c24c4
http://www.cnblogs.com/qianxudetianxia/p/4322331.html

申請(qǐng)Bintray賬號(hào)

bintray上注冊(cè)一個(gè)賬號(hào) 建議注冊(cè)個(gè)人賬號(hào)雏婶。
可以使用github賬號(hào)直接授權(quán)登陸。

很重要白指,由于 Bintray網(wǎng)站 改版了留晚,增加了Organization的概念。如果點(diǎn)擊中間那個(gè)大大的綠色按鈕告嘲,用那個(gè)點(diǎn)了注冊(cè)就錯(cuò)了4砦! 變成了注冊(cè)一個(gè)組織橄唬,注冊(cè)地址是 https://bintray.com/signup 提交aar的時(shí)候就會(huì)出現(xiàn)Unauthorized這個(gè)錯(cuò)誤 注意:個(gè)人的注冊(cè)地址為https://bintray.com/signup/oss

點(diǎn)擊首頁(yè)默認(rèn)注冊(cè)的是組織號(hào)
個(gè)人注冊(cè)
登錄

天大的坑赋焕!一開(kāi)始就進(jìn)入了上面的坑到最后提交上傳aar的時(shí)候一直上傳不上去!Q龀宏邮!,查閱相關(guān)資料后才爬出坑....得注冊(cè)個(gè)人號(hào) 組織號(hào)如何提交待研究

404
Unauthorized

記錄API Key

注冊(cè)后缸血,在https://bintray.com/profile/edit 中查看蜜氨,首次查看的時(shí)候提示需要輸入登錄密碼確認(rèn)。

組織號(hào)的查看API Key
個(gè)人號(hào)的查看API Key

創(chuàng)建maven倉(cāng)庫(kù)

Add New Repository
創(chuàng)建maven倉(cāng)庫(kù)

配置build.gradle

配置插件上傳到bintray需要的插件

項(xiàng)目級(jí)別的`build.gradle`中添加依賴
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'

插件版本過(guò)低可能遇到如下的異常

解決方案:http://www.reibang.com/p/c4f4894ad215

然后在你需要發(fā)布的那個(gè)module(即是library aar)的build.gradle里配置如下內(nèi)容:

1捎泻、配置插件
// 根節(jié)點(diǎn)添加
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
2飒炎、配置版本
// 根節(jié)點(diǎn)添加
version = "0.0.1"

3、定義相關(guān)網(wǎng)站
// 根節(jié)點(diǎn)添加
def siteUrl = 'https://github.com/Javen205/JPay'    // project homepage
def gitUrl = 'https://github.com/Javen205/JPay.git' // project git 
4笆豁、定義Group

舉個(gè)例子郎汪,當(dāng)我們引用retrofit的時(shí)候是這樣的:

compile 'com.squareup.retrofit2:retrofit:2.1.0

引號(hào)內(nèi)字符串以冒號(hào)分割為三部分,第一部分就是group闯狱,第二部分是name煞赢, 第三部分是上面定義的version。

// 根節(jié)點(diǎn)添加
group = "com.javen205.jpay"

上傳到j(luò)center至少需要四個(gè)文件哄孤,除了打包的aar之外照筑,還需要pom和javadoc,source,否則是通不過(guò)jcenter的審核凝危。這些我們都可以用腳本生成波俄。

5、打包javadocjar和sourcejar

這也是上傳到j(luò)center必須要的蛾默。

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}
task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}
artifacts {
    archives javadocJar
    archives sourcesJar
}
6懦铺、定義pom并打包aar
// 根節(jié)點(diǎn)添加
install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                name 'JPay For Android'
                url siteUrl
                // Set your license
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer { //填寫的一些基本信息
                        id 'javen205'
                        name 'javen.zhou'
                        email 'javen205@126.com'
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}
7、上傳到Jcenter倉(cāng)庫(kù)

上傳到j(luò)center的網(wǎng)站Bintray支鸡,需要用戶驗(yàn)證:

bintrayUser=your_user_name 我這里為javendev
bintrayApiKey=your_apikey 就是在上面記錄的API Key

這個(gè)屬于個(gè)人隱私冬念,一般不傳,所以需要在記錄到項(xiàng)目下的local.properties中(利用gitignore忽略這個(gè)文件到git)牧挣,然后腳本再?gòu)膌ocal.properties中讀取這兩個(gè)值急前。

//配置bintray參數(shù)
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
    user = properties.getProperty("bintrayUser")
    key = properties.getProperty("bintrayApiKey")
    configurations = ['archives']
    pkg {
        repo = "maven"               //跟上面創(chuàng)建的Maven倉(cāng)庫(kù)名字保持一致
        name = "JPay"                //發(fā)布到JCenter上的項(xiàng)目名字
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

準(zhǔn)備工作終于都做完了,我們開(kāi)始使用插件自動(dòng)上傳aar到bintray浸踩。如果一切順利的話就可以完成上傳

使用插件自動(dòng)上傳aar到bintray

誰(shuí)便填寫一個(gè)repoName

誰(shuí)便填寫一個(gè)repoName

不填寫repoName

不填寫reopName
查看maven Rep
JPay上傳成功

重復(fù)提交

重復(fù)提交

將庫(kù)提交到JCenter叔汁,點(diǎn)擊右側(cè)的Add to JCenter

Paste_Image.png

出現(xiàn)這個(gè)錯(cuò)誤的原因是執(zhí)行腳本時(shí)并沒(méi)有默認(rèn)生成pom-default.xml以及相關(guān)的文檔和jar统求,添加到JCenter又必須需要检碗,以下是解決方案

點(diǎn)擊

可以在Terminal中執(zhí)行如下命令如果成功了就會(huì)在Lib工程build目錄中自動(dòng)生成docs libs

 ./gradlew clean build bintrayUpload

可能會(huì)遇到的錯(cuò)誤
Fix the issues identified by lint, or add the following to your build script...

正常情況下會(huì)生成以下文件

以上問(wèn)題解決了,我們?cè)?code>maven中刪除之前上傳的,再次上傳arr到bintray码邻,成功之后再點(diǎn)擊右側(cè)的Add to JCenter

Add to JCenter

然后直接send就行(提交JCenter后groupID和在本地定義的一樣折剃,所以本地定義groupID要能標(biāo)識(shí)個(gè)人,最好到 https://jcenter.bintray.com 看下有沒(méi)有重復(fù)的包名

最后耐心等待Bintray審核通過(guò)像屋。

其實(shí)我們的aar 已近上傳到的Maven中我可以可以直接引用怕犁,上傳到JCenter 就不再需要定義自己maven倉(cāng)庫(kù)地址,直接compile即可己莺。

已上傳到自己的Maven倉(cāng)庫(kù)

引用自己的庫(kù)

1奏甫、Maven方式引用自己的庫(kù)

只要在root下的build加上自己maven地址

maven{
     url "https://dl.bintray.com/javendev/maven"
    }

然后在app的build中加上引用即可

compile 'com.javen205.jpay:jpaylib:0.0.1'
2、compile方式引用自己的庫(kù)

如果上面添加到JCenter審核通過(guò)凌受,就可以直接在app的build中加上引用即可

compile 'com.javen205.jpay:jpaylib:0.0.1'

如果沒(méi)有審核通過(guò)就添加引用當(dāng)然就會(huì)存在引用異常阵子,如下圖

沒(méi)有審核通過(guò)引用異常的信息

安利時(shí)間

JPay是對(duì)微信App支付和支付寶支付App支付的SDK進(jìn)行二次封裝,對(duì)外提供一個(gè)較為簡(jiǎn)單的接口和支付結(jié)果回調(diào)

[https://github.com/Javen205/JPay](https://github.com/Javen205/JPay)
[![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Download](https://api.bintray.com/packages/javendev/maven/JPay/images/download.svg)](https://dl.bintray.com/javendev/maven/JPay/_latestVersion)

推薦閱讀
Android依賴管理與私服搭建
Android版-支付寶APP支付
Android版-微信APP支付
支付寶Wap支付你了解多少胜蛉?
一張二維碼集成微信挠进、支付寶支付

安利時(shí)間:
JPay是對(duì)微信App支付、支付寶App支付的二次封裝,對(duì)外提供一個(gè)相對(duì)簡(jiǎn)單的接口以及支付結(jié)果的回調(diào)

極速開(kāi)發(fā)微信公眾號(hào)是對(duì)微信公眾平臺(tái)接口的二次封裝誊册。包括開(kāi)發(fā)者模式领突、事件回調(diào)監(jiān)聽(tīng)、微信模板消息案怯、微信客服消息君旦、自定義菜單、微信支付、素材管理等

如遇到問(wèn)題歡迎留言交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末于宙,一起剝皮案震驚了整個(gè)濱河市浮驳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捞魁,老刑警劉巖至会,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谱俭,居然都是意外死亡奉件,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門昆著,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)县貌,“玉大人,你說(shuō)我怎么就攤上這事凑懂∶汉郏” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵接谨,是天一觀的道長(zhǎng)摆碉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)脓豪,這世上最難降的妖魔是什么巷帝? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮扫夜,結(jié)果婚禮上楞泼,老公的妹妹穿的比我還像新娘。我一直安慰自己笤闯,他們只是感情好堕阔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著颗味,像睡著了一般超陆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脱衙,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天侥猬,我揣著相機(jī)與錄音,去河邊找鬼捐韩。 笑死退唠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荤胁。 我是一名探鬼主播瞧预,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了垢油?” 一聲冷哼從身側(cè)響起盆驹,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滩愁,沒(méi)想到半個(gè)月后躯喇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡硝枉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年廉丽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妻味。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡正压,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出责球,到底是詐尸還是另有隱情焦履,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布雏逾,位于F島的核電站嘉裤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏校套。R本人自食惡果不足惜价脾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一牧抵、第九天 我趴在偏房一處隱蔽的房頂上張望笛匙。 院中可真熱鬧,春花似錦犀变、人聲如沸妹孙。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蠢正。三九已至,卻和暖如春省店,著一層夾襖步出監(jiān)牢的瞬間嚣崭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工懦傍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雹舀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓粗俱,卻偏偏與公主長(zhǎng)得像说榆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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