Android Studio發布項目到Jcenter

新版的Android Studio會將遠程倉庫指定為Jcenter,那Jcenter在哪里?它是干嘛的呢?

要回答這個問題,我們要了解一個公司,叫做jfog,它有個網站是Bintray,這個網站類似于github,但關注的領域不一樣,github管理的是文本文件,而Bintray專注于管理二進制文件,個人感覺有些類似yy和qq的關系。扯回來,我們今天的主人公Jcenter就存放在Bintray網站里,Bintray下有名的庫可不止Jcenter只一個,rpm-center,rubyinstaller都是它里面的倉庫。所以,如果我們想把自己的開源庫存放在Jcenter上供其它人使用,主要步驟如下:

我們需要注冊Bintray賬號,然后上傳我們的項目到Bintray,最后在Bintray里提交我們的項目,管理員會對項目審核,通過后我們就可以在Gradle里通過制定遠程位置來使用自己的庫了。好,Let Go!

注冊Bintray賬號

Bintray官網傳送門:https://bintray.com/

但很遺憾的是這個網站國內訪問有點尷尬,你需要翻墻才可以。

Bintray是支持Github登陸的,也比較推薦在這種方式,(這里我真的想吐槽下某些sb網站做的連排泄物都不如,通過第三方登陸像還得重新注冊!還得手機驗證,這種網站必須拉黑)

登陸之后我們需要兩個參數,一個是我們的用戶名,另外一個就是api key,api key的獲取可以參照我下面的gif圖片:

先記得這兩個數據的獲取方式,一會我們會用到。

上傳自己的Library到Bintray

關于怎樣使用Android Studio創建Library這里就不多講,這里假設我們有一個自己將要上傳到Binray,我這里的Library很簡單,簡單到不需要res文件,是我編寫和整理的和Android相關的工具類,我把這個Librasy命名為utils,整個Library目錄結構如下:

接下里的步驟比較繁瑣,Gradle已經支持通過命令來上傳Library到Bintray,但項目的相關信息需要在gradle的配置文件中制定,首先我們需要打開utils這個module下的build.gradle文件,將其替換如下:

apply plugin: 'com.android.library'

apply plugin: 'com.github.dcendents.android-maven'

apply plugin: 'com.jfrog.bintray'

// 這個version是區分library版本的,因此當我們需要更新library時記得修改這個version

version = "1.0.0"

android {

compileSdkVersion 21

buildToolsVersion "21.1.1"

resourcePrefix "隨便填"

defaultConfig {

minSdkVersion 9

targetSdkVersion 21

versionCode 1

versionName version

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

}

def siteUrl = 'https://github.com/saymagic/AndroidUtils'? ? ? // 項目的主頁

def gitUrl = 'https://github.com/saymagic/AndroidUtils.git'? // Git倉庫的url

group = "cn.saymagic" // Maven Group ID for the artifact,一般填你唯一的包名

install {

repositories.mavenInstaller {

// This generates POM.xml with proper parameters

pom {

project {

packaging 'aar'

// Add your description here

name 'Android Commonly used utils'? //項目描述

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 'saymagic'? ? ? //填寫開發者基本信息

name 'saymagic'

email 'cymmagic@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 = 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"? //發布到Bintray的那個倉庫里,默認賬戶有四個庫,我們這里上傳到maven庫

name = "utils"? //發布到Bintray上的項目名字

websiteUrl = siteUrl

vcsUrl = gitUrl

licenses = ["Apache-2.0"]

publish = true

}

}

注意里面的信息需要按照自己的個人資料進行修改。

因為上述的文件里需要依賴一些其它的庫,所以接下來再到我們項目最外層build.gradle文件里,添加如下兩個依賴

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'

classpath 'com.github.dcendents:android-maven-plugin:1.2'

修改后的文件如下:

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:1.0.0'

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'

classpath 'com.github.dcendents:android-maven-plugin:1.2'

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

}

}

最后,我們在打開項目最外層的local.properties文件,添加如下兩行:

bintray.user=your_user_name

bintray.apikey=your_apikey

your_user_name和your_apikey這兩個數據就是我們在第一步注冊Bintray時提到的兩個參數,

解析來,在項目的根目錄下執行

第一步是檢查代碼的正確性,以及編譯library文件(aar,pom等等),輸入下面的命令:

>?gradlew?install

如果沒有什么問題,會顯示:

BUILD?SUCCESSFUL

現在我們已經成功一半了。下一步是上傳編譯的文件到bintray,使用如下的命令:

gradlew?bintrayUpload

如果顯示如下你就大喊一聲eureka吧!

SUCCESSFUL

在bintray的網頁上檢查一下你的package。你會發現在版本區域的變化



這樣,我們就可以到到我們的module下會生成如下目錄:/build/outputs/aar/

在arr目錄下有如下兩個文件:

以arr文件結尾的就是Gradle將我們的library打包成的二進制文件,別忘記了,Bintray就是用于存儲二進制文件的倉庫,所以執行下面的命令。就可以將我們的library上傳到Bintary。

上傳成功之后,就會在bintray的maven倉庫下看到我們上傳的Library:

提交項目到Jcenter

我們點開我們剛剛提交項目的主頁,點擊右下角的add to jcenter按鈕

接下來寫一些評論:

點擊send后就可以等管理員的審核了。

大概一小時后,管理員就會審核通過:

這樣,我們就可以在Dependence里這樣來引用我們自己的項目了:

dependencies {

compile 'cn.saymagic.utils:utils:1.0.0'

}



參考

https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter/

http://stackoverflow.com/questions/24852219/android-buildscript-repositories-jcenter-vs-mavencentral

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內容