使用Android studio發佈項目到jcenter

前不久寫了一個路徑動畫的庫,想上傳到jcenter讓其他人可以通過complile的方式來依賴使用.
在網上找了很多文章,自己也試了很多方法,最後還是參照鴻神這篇文章上傳上去了.說起上傳庫的過程,真是太心酸了.本來想轉載鴻神的 快速發佈項目到jcenter,無奈沒有找到轉載的按鈕,決定自己寫一篇.
因爲在上傳的過程中,我也遇到了許多問題,也算是記錄一下,希望能幫助其他人少踩一點坑吧,注:步驟與鴻神的博客不太一樣,因爲直接使用鴻神博客上的步驟,上傳了十幾次也沒有成功.
鴻神博客提到的步驟,我可能會簡單帶過,建議先看一下鴻神的博客.

首先最好把你的lib和你的sample module上傳到github上面,至於怎麼上傳到github上就不多說了,網上的教程太多了,而且方法也很多.
上傳成功後,我們就有一個github地址了,類似這樣
https://github.com/sunflowerseat/PathAnim

接下來註冊一個bintary.com的賬號,最好翻牆後再訪問,速度會快一點.
也可以使用三方登錄如github,我就是用github登錄的.
進入到maven頁面下,如:
https://bintray.com/sunflowerseat/maven
導入一個github項目
這裏寫圖片描述
選擇一個項目
這裏寫圖片描述
成功導入後,可以看到maven下多了一個包
這裏寫圖片描述
點擊查看詳情:
這裏寫圖片描述

建好bintary包之後
項目的build,gradle中加入

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.novoda:bintray-release:0.3.4'
    }
}

在待上傳的lib中添加

apply plugin: 'com.novoda.bintray-release'//添加
publish {
    userOrg = 'sunflowerseat'//bintray.com用戶名
    groupId = 'com.fancy.library'//jcenter上的路徑,要保持與之前導入到bintary中的package名一致
    artifactId = 'pathanim'//項目名稱
    publishVersion = '1.0.1'//版本號
    desc = 'this is a path animation library.'//描述
    website = 'https://github.com/sunflowerseat/PathAnim'//填寫之前上傳到github後的地址
}

順便提一點,之前信息配置都檢查過沒有問題,但還是提示maven不存在,或者unauthorized之類的信息.因爲bintary.com的用戶名是有兩個的,當時不知道到底使用哪個用戶名,試了很多次.其實兩個用戶名都是可以的,關鍵是apikey要填寫正確.可能之前項目有些配置不對,總之後來新建項目後就上傳成功了.

在Terminal命令行中輸入

gradlew clean build bintrayUpload 
 -PbintrayUser=your username
 -PbintrayKey=your apikey 
 -PdryRun=false

如圖:
這裏寫圖片描述

如果是第一次上傳項目到jcenter,可能會給你下載一個gradle,如果直接開始編譯了,說明gradle符合要求,可以跳過不看這一步.
事實上,我當時就卡在這一步了,沒有翻牆,後來有大神幫我解決了,AS默認在國外的網站下載gradle,如果有翻牆軟件一定要先翻牆,再執行上傳命令,基本翻了牆下載也可能會比較慢的.
解決方案是,打開工程目錄下的gradle->wrapper->gradle-wrapper.properties 找到distributionUrl,看一下gradle的版本,到網上找一個對應版本的下載地址,替換這個Url.
或者下載一個對應版本的gradle到本地文件夾,使用nodejs(如果沒有要先下載)anywhere命令,生成一個遠程鏈接,替換上面的Url
上面提到的操作只需要操作一次,以後再上傳就不會就會直接使用下載好的gradle了.
然後重新輸入編譯上傳命令,看到Build success你就成功了
這裏寫圖片描述
一般會有四個.
如果編譯失敗,不要着急,命令行會提供錯誤信息的.
比如包含不可映射字符之類的錯誤,刪掉中文註釋就行了,或者添加編碼的代碼.
在項目的build.gradle中添加

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

如果pom文件缺失,就要檢查一下你的配置是否正確了,修改後,重啓AS重新執行以上操作.
如果提示unauthorized的,仔細檢查用戶名和apikey是否正確.如果你確定以及肯定信息正確,可能是AS有點問題,我也碰到這種情況,始終無法上傳成功.重啓AS,同步並clean一下你的工程.再試.

最後就是在profile頁面點擊 加入到jcenter按鈕,審覈通過之後,會發郵件給你,該頁面下的link to也會多一個圖標.有了這個圖標之後,就可以使用了.

第一次發佈項目到jcenter,總會遇到各種各樣的問題,關鍵是要耐心 細心,還有不斷嘗試.一定要確保每個操作的準確性.
如果一直上傳不成功,可能是真的運氣不好,明天再試吧,說不定就成功了噢.

看了博客如果還有什麼不懂的地方,歡迎加羣討論哦.
羣號:283272067

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章