這篇文章將介紹如何進(jìn)行一步一步操作實(shí)現(xiàn)將自己的庫(kù)上傳至JCenter,使得可以簡(jiǎn)便的在app/build.gradle中的dependencies使用compile進(jìn)行導(dǎo)入庫(kù)使用股缸。最終看起來使用的姿勢(shì)是這樣的
1.Example項(xiàng)目和庫(kù)的建立
按照平常的開發(fā)創(chuàng)建項(xiàng)目慨灭,在項(xiàng)目中創(chuàng)建Module乌昔,這個(gè)Module便是一個(gè)可以作為三方提供的庫(kù),這里舉個(gè)簡(jiǎn)單栗子橘蜜,一個(gè)android工具集的項(xiàng)目周荐,核心目錄結(jié)構(gòu)如下:
其中app下為Example的demo,其中包含了一個(gè)Module名字叫utils.
注意: demo和Module的目錄名需要不同舱殿,比如com.leo618.utilsexample和com.leo618.utils形用;
完成項(xiàng)目的創(chuàng)建以及Module庫(kù)代碼編寫之后,上傳至github证杭。
2.上傳項(xiàng)目至github
把自己的項(xiàng)目上傳到github上也是有多種方式的田度,可以直接在網(wǎng)站上傳,或者使用GitHub桌面客戶端解愤,也可以使用命令行镇饺。這一步比較簡(jiǎn)單,注冊(cè)github賬號(hào)按照步驟上傳就行了送讲,直接跳過奸笤。
3.準(zhǔn)備JCenter支持賬號(hào)
首先你需要做的就是在https://bintray.com/有注冊(cè)賬號(hào),沒有的話注冊(cè)一個(gè)便是哼鬓,項(xiàng)目中需要兩個(gè)東西:賬號(hào)名稱和API Key,右上角用戶名處點(diǎn)擊Edit Profile進(jìn)入設(shè)置頁(yè)面监右,左邊欄最后一欄即為API Key(可能需要輸入一次密碼才能查看)
4.修改項(xiàng)目配置,上傳庫(kù)
主要修改項(xiàng)目中的三個(gè)文件(紅線標(biāo)注):
-
加入插件依賴
在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平臺(tái)的賬號(hào)和API Key,選擇寫在這個(gè)文件中是因?yàn)樵撐募粫?huì)上傳到github上异希,版本控制中是需要忽略的,敏感信息就可以起到保護(hù)作用
local -
Module打包上傳gradle腳本
在Module(庫(kù))的build.gradle中的加入腳本設(shè)置如下:
android { resourcePrefix "leo_" //資源標(biāo)識(shí)前綴 隨意填寫 ... } // 然后你可以拷貝下面這一大段 修改注釋的地方 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' // 項(xiàng)目的主頁(yè) github地址 def gitUrl = 'git@github.com:Leo0618/Utils.git' // Git倉(cāng)庫(kù)的url group = "com.leo618.utils" // Maven Group ID for the artifact,一般填你唯一的包名 install { repositories.mavenInstaller { pom { project { packaging 'aar' //項(xiàng)目的描述 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上的項(xiàng)目名字 websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish = true }
修改完成之后,執(zhí)行g(shù)radle命令惰帽,過一會(huì)兒執(zhí)行完成成功后,回到https://bintray.com/ 可以看到項(xiàng)目庫(kù)源碼已經(jīng)上傳到Maven倉(cāng)庫(kù)里面
上傳成功點(diǎn)擊進(jìn)入項(xiàng)目父虑,檢查Files是否包含四個(gè)文件
一般來說只要上傳成功aar和pom文件是有的该酗,檢查一下javadoc和sources兩個(gè)jar是否存在,如果缺失這兩個(gè)文件士嚎,很容易提交JCenter無法通過審核呜魄,如果缺失則分別按順序執(zhí)行g(shù)radle腳本命令other下面的三個(gè)命令
提交JCenter審核
點(diǎn)擊2 進(jìn)入 然后 send 即可,然后坐等幾小時(shí)后航邢,你就可以在其他項(xiàng)目中按照開頭的姿勢(shì)使用自己的庫(kù)了耕赘。
如果你覺得文章有一定價(jià)值,歡迎推薦給你的朋友膳殷!
如有疑問操骡,歡迎加群討論交流
點(diǎn)擊鏈接加入群【AndroidRunner】