轉載自:https://www.jianshu.com/p/f66972f0607a
首先咱們應該註冊一個JFrog Bintray的帳號
Jfrog Bintray官網
這裏咱們能夠注意到那個綠色的按鈕,START YOUR FREE TRIAL。註冊嗎,多簡單的一件事啊。點了直接進去註冊。註冊完以後,直接開整,到最後發佈的時候。你發現你會一直報錯,我明明按照網上一步一步來的,怎麼會報錯。真正註冊用於開發者的,是下面哪一行小字(我真的不明白爲啥要那麼不明顯),For Open Source Distribution Sign Up Here,你們千萬不要搞錯了。java
接下來輸入按照註冊的要求進行填寫就行了,ps:一些郵箱不支持,例如163和qq。這裏我是用gmai註冊的,沒有的話,你們不妨去註冊一個,如今註冊gmail須要使用手機了。選擇國家地區代碼的時候並找不到中國,前面國家隨便選一個,而後直接在你手機前面加上86就好了。android
註冊成功,就能夠看到咱們的首頁了。點擊Edit Profile,若是你發現,你和我同樣是七個那麼註冊成功。git
Edit Profile界面
github
這裏咱們須要注意的信息,一個是你註冊的帳號,另外一個是API Key,爲接下來發布作準備。web
準備一個須要發佈的Android Studio項目
建立一個Android Studio項目,這裏咱們就是用默認的Module - app。如今項目的Build.gradle文件中添加須要須要使用到的依賴。apache
buildscript { repositories { jcenter() } dependencies { classpath'com.android.tools.build:gradle:2.3.0' classpath'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { deleterootProject.buildDir }
有兩點點很是重要,第一點就是gradle build tools的版本設置成1.1.2以上,由於之前的版本有嚴重的bug,咱們將使用的是最新的版本2.3.0。第二點是根據你Gradle的版本,使用不一樣版本的android-maven-gradle-plugin。這裏個人Gradle版本是3.3,因此使用的是com.github.dcendents:android-maven-gradle-plugin:1.5,具體版本直接對應的關係請到以下網站去查詢,android-maven-gradle-plugin。
api
版本直接對應關係服務器
接下來咱們將修改local.properties。在裏面定義api key的用戶名以及被建立key的密碼,用於bintray的認證。之因此要把這些東西放在這個文件是由於這些信息時比較敏感的,不該該處處分享,包括版本控制裏面。幸運的是在建立項目的時候local.properties文件就已經被添加到.gitignore了。所以這些敏感數據不會被誤傳到git服務器。app
bintray.user=YOUR_BINTRAY_USERNAME bintray.apikey=YOUR_BINTRAY_API_KEY
bintray.user對應的就是你註冊bintray時的帳號,bintray.apikey對應的就https://bintray.com/profile/edit頁面中的API KEY,點擊進入還須要輸入你註冊時的密碼。輸入完成直接保存下。
接下來,打開咱們module下的build.gradle文件,以下:maven
apply plugin:'com.android.library' //建議使用library,畢竟你是給別人用的 apply plugin:'com.github.dcendents.android-maven' apply plugin:'com.jfrog.bintray' version="1.0.2" // 對應的版本 android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { // 請注意這裏沒有Application Id。別人在他的module下的build.gradle文件依賴中,添加你的你開源項目。你的 //defaultConfig中有Application Id,別人也會有啊,那麼有兩個Application Id必然會報錯 minSdkVersion15 targetSdkVersion25 versionCode versionName"1.0" testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner" } 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:25.3.1' testCompile'junit:junit:4.12' } defsiteUrl='https://github.com/x1ao3eng/GithubPro' // github上項目的地址 defgitUrl='https://github.com/x1ao3eng/GithubPro.git' //github上項目的git地址 group='com.x1aomeng.githubpro' //通常用你項目的Application Id,這裏通常用到哪裏呢。 //舉一個使用RecyclerView須要添加的依賴,compile'com.android.support:recyclerview-v7:25.3.1' //com.android.support對應的就是上面的group,recyclerview-v7對應的就是module名字,25.3.1對應的是上面的version install{ repositories.mavenInstaller{ pom { project{ packaging'aar' // Add your description here name'Android Jcenter Test' 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'huangxiaomeng'//填寫的一些基本信息 name'x1ao3eng' email'x1ao3eng@gmail.com' } } scm { connection gitUrl developerConnection gitUrl url siteUrl } } } } } 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 } Properties properties =newProperties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) bintray { // 這裏就使用到了,你以前在local.properties中添加的信息 user = properties.getProperty("bintray.user") key = properties.getProperty("bintray.apikey") configurations = ['archives'] pkg { repo ="maven" name ="GithubPro_for_jcenter_test"//發佈到JCenter上的項目名字 websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish =true } }
完成這些以後先Rebuild或者Sync下你的Project,沒什麼問題的話。就能夠把你項目生成到本地的倉庫中了,Android Studio中默認即在Android\sdk\extras\android\m2repository這裏,能夠打開你Android Studio下方的Terminal 或則在Project下打開命令行,輸入一下(可能還須要下載一遍Gradle):
gradlew install
把項目上傳到Bintray
把項目上傳到Bintray,須要plugin的支持,在project目錄下build.gradle文件的dependencies中添加(上面已添加過):
classpath'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5'
接下來執行以下命令行,完成上傳:
gradlew bintrayUpload
這裏咱們通常會在進度97%或者98%卡住一下子,ps:須要FQ,出去抽根菸或者倒杯咖啡。上傳成功後,咱們打開bintray上倉庫的界面就能夠看到咱們的項目CithubPro_for_jcenter。
倉庫界面
到這一步已經接近尾聲了,可是咱們的項目尚未發佈到Jcenter,只是在你本身的倉庫中。別人若是想要使用你的開源項目,須要在project目錄下添加以下代碼:
allprojects { repositories { jcenter() maven { url'https://dl.bintray.com/huang3eng/maven/'} } }
而後在相應module目錄下的build.gradle中添加:
compile 'com.x1aomeng.githubpro:app:1.0.2'
雖然這樣已經可使用,可是仍是有諸多不便的,若是有使用十個不一樣人寫的開源項目,那麼不是要先添加十個別人maven倉庫的地址。Android Studio如今默認已經關聯到Jcenter這個遠程倉庫,因此咱們最好仍是發佈到Jcenter上。打開你的項目,點擊Add to Jcenter,什麼也不須要填,直接Send就行了。接下來須要經過管理員的審覈都行了(我這邊審覈用了四個多小時),通常你的項目沒有什麼中文或者全英語註釋均可以經過(終於知道爲啥那些國內開源項目也不多會有中文註釋)。
審覈完成後,你會收到一份郵件讓你確認,審覈成功以後,你會發現項目中Linked to會多了一個Jcenter,這說明你的項目已經成功發不到Jcenter上了。我只能告訴你,你成功了與世界接軌的第一步。
總結
每一個人的開發環境是不同的,使用的版本也多是不同的。因爲種種的不一樣,可能照着個人步驟,你會出現報錯。網上將開源項目發佈到Jcenter的文章也很多,使用的方式也可能不一樣。我這邊文章主要把我本身踩過的一些坑記錄下來,但願對大家哪怕只有一點點的幫助。第一次寫簡書,感受又把整個過程梳理了一遍。若是有不對的地方或者更好的方法,請告訴我。
做者:奧斯特洛夫斯基c 連接:https://www.jianshu.com/p/f66972f0607a 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。