這篇文章將介紹如何進行一步一步操作實現(xiàn)將自己的庫上傳至JCenter,使得可以簡便的在app/build.gradle中的dependencies使用compile進行導入庫使用。最終看起來使用的姿勢是這樣的

1.Example項目和庫的建立
按照平常的開發(fā)創(chuàng)建項目,在項目中創(chuàng)建Module,這個Module便是一個可以作為三方提供的庫,這里舉個簡單栗子,一個android工具集的項目,核心目錄結構如下:

其中app下為Example的demo,其中包含了一個Module名字叫utils.
注意: demo和Module的目錄名需要不同,比如com.leo618.utilsexample和com.leo618.utils;
完成項目的創(chuàng)建以及Module庫代碼編寫之后,上傳至github。
2.上傳項目至github
把自己的項目上傳到github上也是有多種方式的,可以直接在網(wǎng)站上傳,或者使用GitHub桌面客戶端,也可以使用命令行。這一步比較簡單,注冊github賬號按照步驟上傳就行了,直接跳過。
3.準備JCenter支持賬號
首先你需要做的就是在https://bintray.com/有注冊賬號,沒有的話注冊一個便是,項目中需要兩個東西:賬號名稱和API Key,右上角用戶名處點擊Edit Profile進入設置頁面,左邊欄最后一欄即為API Key(可能需要輸入一次密碼才能查看)

4.修改項目配置,上傳庫
主要修改項目中的三個文件(紅線標注):

-
加入插件依賴
在Project的build.gradle中的加入主要的兩行classpath:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1+' // jfrog plugin classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' // maven plugin } } -
本地文件保存賬戶信息
在local.properties文件中加入bintray平臺的賬號和API Key,選擇寫在這個文件中是因為該文件不會上傳到github上,版本控制中是需要忽略的,敏感信息就可以起到保護作用
local -
Module打包上傳gradle腳本
在Module(庫)的build.gradle中的加入腳本設置如下:
android { resourcePrefix "leo_" //資源標識前綴 隨意填寫 ... } // 然后你可以拷貝下面這一大段 修改注釋的地方 apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' version = "0.0.1"http:// 區(qū)分library版本 def siteUrl = 'https://github.com/Leo0618/Utils' // 項目的主頁 github地址 def gitUrl = 'git@github.com:Leo0618/Utils.git' // Git倉庫的url group = "com.leo618.utils" // Maven Group ID for the artifact,一般填你唯一的包名 install { repositories.mavenInstaller { pom { project { packaging 'aar' //項目的描述 name 'Android Utils.' url siteUrl // 許可證說明 licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { //開發(fā)者的基本信息,根據(jù)自己喜好填上就是 developer { id 'Leo0618' name 'Leo' email 'leo0618@126.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 options.linkSource true classpath += project.files(project.android.getBootClasspath().join(File.pathSeparator)) failOnError false } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives javadocJar archives sourcesJar } Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) bintray { user = properties.getProperty("bintray.user") key = properties.getProperty("bintray.apikey") configurations = ['archives'] pkg { repo = "maven" name = "Utils" //發(fā)布到JCenter上的項目名字 websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish = true }修改完成之后,執(zhí)行gradle命令,過一會兒執(zhí)行完成成功后,回到https://bintray.com/ 可以看到項目庫源碼已經(jīng)上傳到Maven倉庫里面
上傳成功點擊進入項目,檢查Files是否包含四個文件
一般來說只要上傳成功aar和pom文件是有的,檢查一下javadoc和sources兩個jar是否存在,如果缺失這兩個文件,很容易提交JCenter無法通過審核,如果缺失則分別按順序執(zhí)行gradle腳本命令other下面的三個命令
提交JCenter審核

點擊2 進入 然后 send 即可,然后坐等幾小時后,你就可以在其他項目中按照開頭的姿勢使用自己的庫了。
如果你覺得文章有一定價值,歡迎推薦給你的朋友!
如有疑問,歡迎加群討論交流
點擊鏈接加入群【AndroidRunner】



