Android將library代碼發(fā)布到j(luò)center

作為一名Android開發(fā)者,日常開發(fā)工作中肯定會用到一些強(qiáng)大的第三方開源庫,有了這些開源的幫助,開發(fā)工作可謂是如魚得水。很多時候,我們自己寫了一套代碼,為了讓別人體驗到自己代碼的便捷之處,通常我們需要將其部署到github,發(fā)布到j(luò)center,然后生成gradle代碼供他人使用。網(wǎng)上對于這部分的教程很多,不管是通過gradle-bintray-plugin插件或者是bintray-release插件,實現(xiàn)流程幾乎一致,但有些細(xì)節(jié)存在差異,最終都可以通過compile或者implemention引用。具體步驟可以參考以下兩篇文章:

當(dāng)然,發(fā)布過程并不是百分百成功的,難免會遇到以下常見問題:

  1. 終端輸入gradlew install命令后出現(xiàn)bash: gradlew: command not found問題:

    該問題的原因一般是沒有配置gradle的環(huán)境變量,我們可以將gradle所在位置復(fù)制到環(huán)境變量中去,windows較為簡單,Mac比較特殊,這里特別說明一下,可以參考這篇文章:https://blog.csdn.net/u013424496/article/details/52684213

  2. 權(quán)限問題:

    可能會遇到-bash: /Applications/Android Studio3.0.app/Contents/gradle/gradle-4.1/bin/gradle: Permission denied問題,一般是gradle權(quán)限引起的,我們可以在as終端輸入:

    $ chmod +x gradle
    $ chmod +x gradle.bat
    

    一般情況下,重新執(zhí)行g(shù)radlew 命令就沒問題了,如果還是不行,可以在gradlew xxx命令前加上./,如:

    ./gradlew clean build bintrayUpload 
     -PbintrayUser=xxx 
     -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx 
     -PdryRun=false
    
  3. 執(zhí)行jcenter發(fā)布命令時出現(xiàn)Execution failed for task ':library:bintrayUpload'. Bintray user cannot be empty!問題:

    這種問題可能是user為空,沒有設(shè)置,也可能是發(fā)布命令中間多了空格符合或者換行符號,不要從網(wǎng)上復(fù)制命令直接執(zhí)行,最好先復(fù)制到文本編輯器查看格式是否正確。

  4. library發(fā)布成功后,一定要記得先在jcenter個人倉庫的項目頁點擊add to jcenter審核通過后才能使用compile和maven。

  5. 如果jcenter審核通過,可以通過compile....命令復(fù)制到gradle中編譯一下,如果出現(xiàn):

    Error:(32, 13) Failed to resolve: com.android.support:support-annotations:27.1.0 Install Repository and sync project
    Show in File.
    

    可以嘗試在project到build.gradle文件中添加如下代碼:

    allprojects {
        repositories {
            maven { url "https://maven.google.com" }
            jcenter()
        }
    }
    

    重新編一下看能否通過。

  6. 如果使用classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:xx'插件,發(fā)布到j(luò)center版本version必須通過library的gradle文件中定義:

    
    version = "1.0.0"
    
    

    方可在jcenter正常顯示版本號,否則會出現(xiàn)版本號未知的問題。

  7. 如果使用classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:xx插件,最終jcenter中的compile依賴項目名會自動使用你library的moudle名作為最終的項目名,如,我的library的moudle名為library,那么最終生成的compile代碼會是:

    com.moos:library:1.0.0
    

    因此,在發(fā)布之前,請務(wù)必確認(rèn)好最終的名字。這里,強(qiáng)烈推薦使用classpath 'com.novoda:bintray-release:0.x.x'插件來進(jìn)行jcenter發(fā)布操作,真的很方便!

  8. 最后,如果你的library中有中文的注釋,可能會有編碼問題,可以在project的build.gradle文件中添加如下代碼:

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

    ?

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

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

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