最近本人自己寫了個簡單的開源庫袱瓮,放在github上宛瞄。就想想我們工程中平時用一些第三方的網(wǎng)絡框架和圖片框架浮禾,都支持Gradle一句話依賴使用,如果是eclipse份汗,要導入jar,所以就想自己也上傳到Jcenter/Bintray.
1.必要的準備工作
AndroidStudio盈电、Gradle和自己的開源項目這個必須有。
Jcenter是Bintray下的一個倉庫裸影,所以Bintray帳號必須的挣轨,沒有的同學看下文如何申請。
網(wǎng)絡必須是暢通的轩猩,要能訪問https://bintray.com
如何申請Bintray帳號
沒有Bintray帳號的同學到Bintray官網(wǎng)申請卷扮,進入頁面后點擊右上角的Sign In登錄荡澎,如果有帳號的人可以直接登錄了,沒有帳號的同學點擊下面的Sign Up注冊帳號晤锹,操作流程如圖所示:
點擊Sign In按鈕登陸或者注冊。
第二步鞭铆,登錄或者到注冊頁面
有帳號直接登錄或衡,或者用第三方帳號(Github、Twwiter车遂,Google+)登錄封断,如果沒有帳號就點擊Sign Up注冊:
根據(jù)提示輸入相關信息注冊舶担,郵件地址灰常重要坡疼,一定填自己最常用的,找回密碼等用得到衣陶,注冊好之后會收到一封激活的郵件柄瑰,根據(jù)提示激活就好了。
apikey是我們發(fā)布項目到Jcetner時必須要用的教沾,拿到ApiKey后保存起來等下要用,步驟如下:
拿到apikey必須要先登錄授翻,登錄成功后,右上角原來顯示Sign In的地方顯示的自己的用戶名镐作,鼠標指向用戶名的時候有一個下拉菜單藏姐,我們需要點擊Your Profile,出現(xiàn)的頁面左偏上角你的頭像和用戶名下面有一個[Edit]该贾,圖示:
點擊Edit后出來的新頁面羔杨,選擇左側的[API Key],會出來如下頁面杨蛋,輸入你登錄密碼點擊下方的Submit后會顯示一個ApiKey兜材,圖示:
輸入密碼后點擊Submit后顯示如下,鼠標選中文字后復制并保存(注意不要點擊Revoke it逞力,這是撤銷這個ApiKey的意思):
第五步曙寡,就是創(chuàng)建一個Maven創(chuàng)庫
點擊add創(chuàng)建跳入如下頁面:
這里需要注意的是: 這個Name 和 選擇Maven重要,Name在Studio里面上傳時Jcenter時需要這個名字的
創(chuàng)建成功后會跳到下個頁面寇荧,然后點擊 Add New Package 開始 創(chuàng)建自己項目庫举庶,這邊有3個字段是必須 要填
(1) Name (2)Licenses這里一般選擇Apache-2.0與你Studio里面配置一致 (3)Version control 版本號 如:1.0.1
以上的步驟做完后,下面就是在我們的工程里面進行配置
配置項目gradle和local.properties
(一)配置項目的gradle文件
我們項目一般會有多個gradle配置文件揩抡,第一步要配置的是項目的gradle户侥,而不是module/library的gradle镀琉,也就是上圖[項目的gradle]標注的文件,你的項目中應該只有dependencies節(jié)點下的代碼不一樣:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' //添加這行
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'? //添加這行
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
(二)配置要上傳的library/module的gradle文件
applyplugin:'com.android.library'
applyplugin:'com.github.dcendents.android-maven' ? //添加這行
applyplugin:'com.jfrog.bintray'? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //添加這行
android {
compileSdkVersion23
buildToolsVersion"23.0.1"
defaultConfig {
minSdkVersion15
targetSdkVersion23
versionCode1
versionName"1.0"
}
?buildTypes {?
?release {?
?minifyEnabledfalse?
?proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'?
?}
?}
?}
dependencies {
compile fileTree(dir:'libs',include: ['*.jar'])
testCompile'junit:junit:4.12'
compile'com.android.support:appcompat-v7:23.0.0'
}
/**以下都是需要配置的**/
version="1.0.1"
// 定義兩個鏈接蕊唐,下面會用到屋摔。
defsiteUrl ='https://github.com/15189611/PullRefreshRecycleView'// 項目主頁。
defgitUrl='https://github.com/15189611/PullRefreshRecycleView.git'// Git倉庫的url替梨。
// 唯一包名钓试,比如compile 'com.charles:pullrefreshlibrary:1.0.1''中的
? ? ? ? ?com.charles就是這里配置的。?
? ? ? ? ? pullrefreshlibrary : 這個就是你module的項目名稱副瀑,一般你創(chuàng)建一個項目都是app弓熏,你可以修改此名字
? ? ? ? ? 1.0.1?
group="com.charles" ? ? ?
install {
repositories.mavenInstaller{
// 生成pom.xml和參數(shù)
pom{
project{
packaging'aar'
// 項目描述,復制我的話俗扇,這里需要修改硝烂。
name'PullRefreshRecycleView'// 可選,項目名稱铜幽。
description'The Android PullRefreshRecycleView.'// 可選,項目描述串稀。
urlsiteUrl// 項目主頁除抛,這里是引用上面定義好。
// 軟件開源協(xié)議母截,現(xiàn)在一般都是Apache License2.0吧到忽,復制我的,這里不需要修改清寇。
licenses {
license{
name'The Apache Software License, Version 2.0'
url'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
?}
?//填寫開發(fā)者基本信息喘漏,復制我的,這里需要修改华烟。
?developers{
?developer{
?id'151896911'// 開發(fā)者的id翩迈。
?name'mcharles'// 開發(fā)者名字。
?email'18670342259@163.com'// 開發(fā)者郵箱盔夜。?
?}
?}
// SCM负饲,復制我的,這里不需要修改喂链。
?scm{
connectiongitUrl// Git倉庫地址返十。
developerConnectiongitUrl// Git倉庫地址。
urlsiteUrl// 項目主頁椭微。
}
}
}
}
// 生成jar包的task洞坑,不需要修改。
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier='sources'
}
// 生成jarDoc的task蝇率,不需要修改迟杂。
task javadoc(type: Javadoc) {
source= android.sourceSets.main.java.srcDirs
classpath+=project.files(android.getBootClasspath().join(File.pathSeparator))
// destinationDir = file("../javadoc/")
failOnErrorfalse// 忽略注釋語法錯誤刽沾,如果用jdk1.8你的注釋寫的不規(guī)范就編譯不過。
}
// 生成javaDoc的jar逢慌,不需要修改悠轩。
task javadocJar(type: Jar,dependsOn:javadoc) {
classifier='javadoc'
fromjavadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
// 這里是讀取Bintray相關的信息,我們上傳項目到github上的時候會把gradle文件傳上去攻泼,所以不要把帳號密碼的信息直接寫在這里火架,寫在local.properties中,這里動態(tài)讀取忙菠。
Properties properties =newProperties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")// Bintray的用戶名何鸡。
key = properties.getProperty("bintray.apikey")// Bintray剛才保存的ApiKey。
configurations = ['archives']
pkg{
repo ="maven"http:// 上傳到maven庫牛欢。 ?注意:這里填寫你剛剛創(chuàng)建的庫的名稱 而不是maven
name ="PullRefreshRecycleView"http:// 發(fā)布到Bintray上的項目名字,這里的名字是你創(chuàng)建項目的名稱骡男,比如:PullRefreshRecycleView
websiteUrl = siteUrl
vcsUrl =gitUrl
licenses = ["Apache-2.0"]
publish =true// 是否是公開項目。
}
}
(三)在local.properties中為module/libraray配置用戶隱私信息
我們會在local.properties中配置很多變量傍睹,別的地方動態(tài)引用或者讀取隔盛,這樣就可以做到修改一個地方,其它地方都可以不用改了:
sdk.dir=你的sdk路徑
?# 其實你只需要添加下面兩行拾稳,第一個填你的用戶名吮炕,比如我的是mcharles
1? bintray.user=mcharles
2 bintray.apikey=fa*******************aab
注意下我這里為了不泄漏我的ApiKey,就用*代替了访得,你的要寫你的完整的ApiKey喔龙亲。
(四) 設置Studio的編碼格式為UTF-8 ?這邊如果你的代碼有中文注釋的話,就會影響到報錯悍抑,設置編碼這邊就不貼圖了·相信大家都會.(特別注意)
上傳項目到Jcenter
準備工作都做完啦鳄炉,最后一步就是上傳操作了,點擊AndroidStudio底部的Terminal搜骡,觀察下Terminal顯示的路徑是否是你當前項目的root拂盯。
1.這里如果你系統(tǒng)配置了gradle的用戶環(huán)境,輸入gradle install浆兰,如果沒有配置gradle用戶環(huán)境磕仅,輸入gradlew install ,需要下載。
? 這邊我教大家一個配置gradle環(huán)境簸呈,一般我們用Studio開發(fā)已經(jīng)下載過gradle環(huán)境這邊我們只需要找到相對于的位置
? 像配置jdk的path一樣如:
找到自己的studio安裝位置: 比如我的是:E:\android-studio\android-studio\gradle\gradle-2.10\bin
然后復制目錄配置到Path里面去就ok
正確的環(huán)境路徑應該是C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3\bin 這樣就可以咯
配置完后你重啟Studio,可以輸入直接在控制臺輸入: gradle install
如果沒有問題過個幾分鐘后就會顯示BUILD SUCCESSFUL榕订。
2.如果你看到了生成javadoc時編譯不過,那么要看下在gradle中task javadoc下有沒有failOnError false這句話蜕便,在剛才編寫gradle時提示過了劫恒。如果加了這句而你的javadoc寫的不規(guī)范會有警告,你不用鳥它。
3.最后一步两嘴,運行gradle install后看到BUILD SUCCESSFUL后丛楚,再輸入上傳命令gradle bintrayUpload,等一分鐘左右就執(zhí)行完了憔辫,會提示SUCCESSFUL趣些。
4.瀏覽器https://bintray.com/后會看到你的項目。
上傳完成咯贰您,你會發(fā)現(xiàn)在項目gradle中依賴如下代碼后依賴失敾灯健:
這是你還沒有將你的項目提交給Bintray的管理員審核,所以不能用锦亦。
最后步驟:將上傳后的項目提交
原因是我們項目上傳完成后還需要Bintray的管理員審核舶替,所以在剛才項目頁面點擊進去查看詳情,點擊Add to Jcetner:
之后的頁面中填寫項目信息杠园,交給Bintray管理員審核:
發(fā)送后就所有的步驟完成了顾瞪,現(xiàn)在就是坐等你的注冊郵箱收信息吧,一般時間蠻快的抛蚁,半天左右吧陈醒。
? 審核通過后你就可以在項目中依賴了·好運碼農(nóng)們~~~~~