Android Studio3.3.2 發(fā)布Kotlin項(xiàng)目到Jcenter

作者個人網(wǎng)站:http://www.harddone.com

紙上得來終覺淺。

一直以為發(fā)布AAR到j(luò)center是非常簡單的事被因,跟發(fā)布到私有服務(wù)器nexus應(yīng)該沒太多差別。沒想到自己動手做過才知道千萬道坑罕伯。

本文將記錄在Android Studio 3.3.2下乾吻,如何上傳用kotlin開發(fā)的aar到j(luò)center服務(wù)器以及遇到的問題灵疮。參考來自這篇博文织阅,寫的非常好,詳細(xì)的介紹了許多的基本概念和發(fā)布步驟始藕。

一蒲稳、 注冊Jcenter 個人賬號

這里請注意,Bintray官網(wǎng)伍派,請選擇“For an Open Source Account”注冊賬號江耀。


二、創(chuàng)建Repository和Package

以本次測試的工程為例诉植,我想在Jcenter上發(fā)布一個測試的Android SDK, 自定義命名為LazySDK, 該SDK下目前只包含一個Sub-SDK包:customviews, 該包主要是封裝一些日常項(xiàng)目中常用的view祥国。所以我可以在Bintray先創(chuàng)建一個倉庫命名為LazySDK,然后在倉庫中再創(chuàng)建一個包為customviews.

第一步:創(chuàng)建Reprository:

點(diǎn)擊"Add New Repository"
輸入倉庫名稱, Type選擇“Maven”

第二部:創(chuàng)建Package

進(jìn)入第一步創(chuàng)建的倉庫“LazySDK",新建Package,然后填寫Package name等基本信息后保存:


點(diǎn)擊“Add New Package”


補(bǔ)充完整截圖中選中的必填字段晾腔,其他信息不用管


三舌稀、配置Android Studio工程

在準(zhǔn)備配置之前,請先確保工程沒有錯誤灼擂。以本次測試為例:本地創(chuàng)建了一個LazySDK的工程壁查,Kotlin為開發(fā)語言,工程中依賴Module:customviews.



第一步:配置upload腳本

(1)在project build.gradle文件中配置dependencies:

dependencies {

classpath 'com.android.tools.build:gradle:3.3.2'

? ? classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

? ? classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'

? ? classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'

? ? classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'

}

(2)在project目錄下創(chuàng)建:??jcenter_push.gradle

(3)在library moudle builde.gradle中引用 jcenter_push.gradle, 首先在ext中配置?jcenter_push.gradle需要用到的變量值剔应,這個樣做的目的是如果以后工程依賴多個module的時候睡腿,先在各自的build.gradle中定義跟自己相關(guān)的倉庫名稱等信息,然后共用一個jcenter_push.gradle. (未驗(yàn)證)

ext {

bintrayRepo ='LazySDK'

? ? bintrayName ='customviews'

? ? publishedGroupId ='com.lazy.sdk'

? ? libraryName ='customviews'

? ? artifact ='customviews'

? ? libraryDescription ='Custom vies on Android'

? ? siteUrl ='https://github.com/LazyBonesLZ/LazySDK.git'

? ? gitUrl ='https://github.com/LazyBonesLZ/LazySDK.git'

? ? libraryVersion ='0.0.1'

? ? developerId ='lazyboneslz'

? ? developerName ='TJL'

? ? developerEmail ='lazybonestjl@gmail.com'

? ? licenseName ='The Apache Software License, Version 2.0'

? ? licenseUrl ='http://www.apache.org/licenses/LICENSE-2.0.txt'

? ? allLicenses = ["Apache-2.0"]

}

apply from: '../jcenter_push.gradle'

四峻贮、install & upload

(1)執(zhí)行./gradlew install, 驗(yàn)證是否有問題席怪,如果一切順利,你會看到 Build Successful

? (2) 然后執(zhí)行: ./gradlew bintrayUpload纤控,如果一切順利挂捻,你會看到 Build Successful

五、Add to Jcenter

到目前為止船万,上傳的SDK還沒有正式發(fā)布到Jcenter刻撒,只在你自己的Bintray的Maven倉庫。你可以在project 的build.gradle中指定repository url來使用耿导。

repositories {

? ? ?maven{

? ? ? ? url 'https://dl.bintray.com/lazyboneslz/LazySDK/'

? ? ? }

? ? ? ? google()

? ? ? ? jcenter()

}

然后在app build.gradle田間dependencies

implementation com.lazy.sdk:customviews:0.0.1'

這種通過配置repository url來引用的方式声怔,不是最好的方式,我們不可能有10個倉庫碎节,就配置10個URL吧捧搞? 所以抵卫,需要把sdk發(fā)送到Jcenter服務(wù)器狮荔,這樣我們就可以不用配置自定義的repository url了胎撇。


直接點(diǎn)擊"Add to JCenter"

?然后直接點(diǎn)擊“Send",不用填寫任何信息都可以殖氏。


點(diǎn)擊send

然后就等JCenter 審核晚树,一般需要幾個小時。我是頭一天12點(diǎn)左右發(fā)送的雅采,但是等了一下午都沒看到通過爵憎。第二天上班發(fā)現(xiàn)已經(jīng)通過了,可以不配置自定義的repository url 直接引用JCenter所上傳 SDK婚瓜。


審核通過后宝鼓,會看到圖標(biāo)已經(jīng)發(fā)生了變化

六、Github源碼

七巴刻、備注

本次測試并沒有按照所參考的博文那樣愚铡,自動將內(nèi)容同步到maven central , 所以并未配置GPG相關(guān)的信息。


=========================================>

八胡陪、遇到的問題

1. Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): 'xxx/javadoc/javadoc.options':

本項(xiàng)目是kotlin開發(fā)沥寥,在配置中如下配置:

(1) 在project build.gradle文件中配置dependencies:

dependencies {

? ?........

? ? classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'

}

(2) 在jcenter_push.gradle中加入:

if (project.hasProperty("kotlin")) {//Kotlin libraries

? ? task sourcesJar(type: Jar) {

? ? ? ?classifier ='sources'

? ? ? ? from android.sourceSets.main.java.srcDirs

}

task javadoc(type: Javadoc,dependsOn: dokka) {

}

}else if (project.hasProperty("android")) {// Android libraries

? ? task sourcesJar(type: Jar) {

classifier ='sources'

? ? ? ? from android.sourceSets.main.java.srcDirs

}

task javadoc(type: Javadoc) {

source = android.sourceSets.main.java.srcDirs

classpath +=project.files(android.getBootClasspath().join(File.pathSeparator))

}

}else {// Java libraries

? ? task sourcesJar(type: Jar,dependsOn: classes) {

classifier ='sources'

? ? ? ? fromsourceSets.main.allSource

? ? }

}

//解決kotlin javadoc.options抱錯

dokka {

outputFormat ='html'

? ? outputDirectory ="$buildDir/javadoc"

}

2 . Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'xx/xxxxx.pom'

這個錯誤困擾了我很久,在網(wǎng)上都各種research柠座,發(fā)現(xiàn)大多都是說工程中的module名稱必須和artifactid一致邑雅,我按照提示改成一致以后問題依然存在,百思不得琪姐妈经。最后去https://github.com/bintray/gradle-bintray-plugin查解釋淮野,也沒發(fā)現(xiàn)什么特別需要的注意的地方。后來仔細(xì)對比官方demo的gradle狂塘,發(fā)現(xiàn)它還聲明了group的值录煤,而我是參看博文中的腳本來做,卻沒有g(shù)roup的相關(guān)聲明荞胡,最后加上去妈踊,完美上傳。

version = libraryVersion

//important, if null, will issue: Maven group, artifact or version not match ...

group = publishedGroupId

3. JCenter審核通過前泪漂,配置repository url引用sdk失敗廊营,原因是配置的URL錯誤,不能直接拷貝Bintray的倉庫地址

? ? maven{

? ? ? ?url 'https://bintray.com/lazyboneslz/LazySDK/customviews'

? ? }

正確的地址是:

maven{

? ? ? ?url 'https://dl.bintray.com/lazyboneslz/LazySDK/customviews'

? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萝勤,一起剝皮案震驚了整個濱河市露筒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敌卓,老刑警劉巖慎式,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡瘪吏,警方通過查閱死者的電腦和手機(jī)癣防,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掌眠,“玉大人蕾盯,你說我怎么就攤上這事±侗” “怎么了级遭?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渺尘。 經(jīng)常有香客問我挫鸽,道長,這世上最難降的妖魔是什么鸥跟? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任掠兄,我火速辦了婚禮,結(jié)果婚禮上锌雀,老公的妹妹穿的比我還像新娘蚂夕。我一直安慰自己,他們只是感情好腋逆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布婿牍。 她就那樣靜靜地躺著,像睡著了一般惩歉。 火紅的嫁衣襯著肌膚如雪等脂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天撑蚌,我揣著相機(jī)與錄音上遥,去河邊找鬼。 笑死争涌,一個胖子當(dāng)著我的面吹牛粉楚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亮垫,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼模软,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饮潦?” 一聲冷哼從身側(cè)響起燃异,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎继蜡,沒想到半個月后回俐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逛腿,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年仅颇,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳄逾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡灵莲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殴俱,到底是詐尸還是另有隱情政冻,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布线欲,位于F島的核電站明场,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏李丰。R本人自食惡果不足惜苦锨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趴泌。 院中可真熱鬧舟舒,春花似錦、人聲如沸嗜憔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吉捶。三九已至夺鲜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呐舔,已是汗流浹背币励。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留珊拼,地道東北人食呻。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像澎现,于是被迫代替她去往敵國和親搁进。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

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

  • 標(biāo)簽: android library jCenter MavenCentral 前言 我們在Android St...
    華枯榮閱讀 1,967評論 6 17
  • 新版的Android Studio會將遠(yuǎn)程倉庫指定為Jcenter昔头,那Jcenter在哪里饼问?它是干嘛的呢? 要回答...
    各木仔閱讀 694評論 0 1
  • 由于本篇文章的排版問題揭斧,不利于閱讀莱革,請看排版后的文章:傳送門 引言 使用Android Studio開發(fā)的童鞋峻堰,相...
    SupLuo閱讀 1,589評論 0 50
  • 昨夜情怯思故樓 滄田難追歲月稠 物是人非事事休 青梅煮酒梗入喉 風(fēng)雨驟 趁殘酒 漫言再不論風(fēng)流 今宵酒散卻還笑 只...
    吾非樂閱讀 237評論 0 3
  • 一直想找兼職,剛巧在某網(wǎng)看到招聘兼職模特的信息盅视,且要求還挺寬松的捐名,160CM以上,微胖闹击,待遇300元/天镶蹋,一天拍攝...
    迷too閱讀 155評論 0 0