簡單的普及下關於android
的依賴倉庫,有兩種分別是Jcenter
與Maven Central
其實不論是Jcenter
仍是Maven Central
都是Maven
庫。android
Jcenter
是由bintray.com
維護,在Android Studio
的項目根目錄的build.gradle
中咱們會看到自動幫咱們實現的Jcenter
nginx
buildscript { repositories { jcenter() } }
固然也能夠在build.gradle
中定義Maven Central
git
buildscript { repositories { mavenCentral() } }
至於在Android Studio
中爲何默認使用Jcenter
緣由仍是有的,感興趣的能夠本身去查,我要說的一點就是,這裏你能夠認爲Jcenter
是Maven Central
的超集,這樣就能更好的理解爲何要使用Jcenter
了。github
這裏要了解一下咱們看到的依賴所定義的方式,實際上是有格式的並非隨便亂寫的。其實你只要日常夠仔細就能發現他們的格式是同樣的。
由GroupId
、ArtifactId
與VersionId
組成。例如com.jakewharton:butterknife:6.1.0'
它的GroupId
是com.jakewharton
,ArtifactId
是butterknife
,VersionId
是6.1.0
。如今看這些依賴是否是更清晰了呢。當咱們添加了依賴以後gradle
會先去Maven
中查找是否有該library
若是有就會使用上面定義的形式下載http://jcenter.bintray.com/GroupId/ArtifactId/VersionId
sql
http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0
apache
http://www.codesocang.com/anzhuoyuanma/
經過該連接下載到本地再與咱們的項目結合。api
下面正式進行實現依賴的實現app
首先要在https://bintray.com 中註冊帳號,註冊都是很簡單的就不所說了。
而後回到主頁在你的Owned Repositories
中看下你是否已經添加了maven
。maven
第一次註冊的應該沒有,因此咱們要先New Repository
建立maven
gradle
建立以後會自動跳轉到maven
中,你會發現沒有package
,咱們能夠Add New Package
這種相信都會,我這裏要說的是另一種,咱們直接在Android Studio
中進行配置而後上傳到Bintray
。
爲了使別人能更好的使用,咱們通常在實現本身的依賴的時候會把實現的該依賴的源碼做爲一個Module
,再把實例代碼做爲Application Module
。因此咱們要事先處理好Module
,下面是我弄好的示例
在分了Module
以後,首先在項目的根目錄
的build.gradle
的dependencies
中添加bintray
插件
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3
找到local.properties
文件在其中添加
bintray.user=xxxx bintray.apikey=xxx
bintray.user
是註冊的user,至於bintray.apikey
在JFrog Bintray
中的Your Profile
的Edit
頁面的API Key
中能找到。
在其中添加以下示例代碼:
apply plugin: 'com.android.library' ext { bintrayRepo = 'maven' bintrayName = 'mypicker' publishedGroupId = 'com.idisfkj.picker' libraryName = 'MyPicker' artifact = 'mypicker' libraryDescription = 'A pickerView on Android' siteUrl = 'https://github.com/idisfkj/idisfkj.picker' gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git' libraryVersion = '1.2.1' developerId = 'idisfkj' developerName = 'idisfkj' developerEmail = 'idisfkj@qq.com' licenseName = 'The Apache Software License, Version 2.0' licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' allLicenses = ["Apache-2.0"] }
同時在最後添加兩個腳本
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle' apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
這是我這個依賴的示例。其中bintrayRepo
是默認的使用maven
,mypicker
是創建的package name
,siteUrl
是你的項目地址,個人項目在github上,因此是github項目的地址形式。gitUrl
是VCS
。其餘應該沒什麼問題,相應的改爲本身的信息。
這樣就構建好了依賴com.idisfkj.picker:mypicker:1.2.1
打開Android Studio
的終端
在終端輸入
./gradlew install
出現BUILD SUCCESSFUL
就沒問題
在終端輸入
./gradlew bintrayUpload
同樣的出現BUILD SUCCESSFUL
就沒問題
而後你進入JFrog Bintray
進入maven
你就會發現其中多了一個package
,若是有的話那就表示完美成功。
完成了上面的步驟並不表明別人能夠直接使用
dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }
還要添加
repositories { maven { url 'https://dl.bintray.com/idisfkj/maven/' } }
因此咱們要同步到Jcenter
中,怎麼同步呢?別急,只要在你剛剛生成的package
中點擊Add to Jcenter
便可。
進去以後直接發送就能夠,不須要填寫什麼。
最後就是等待了。幾個小時以後你會收到考覈經過的消息,再返回package
就會發現Linked to
發生了變化。
如今你也能夠經過http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。
同時別人也能使用你的依賴,經過以下簡單的配置
dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }
對於版本更新,只要更改上面配置的版本號libraryVersion = '1.2.1'
改爲你要更新的版本,其它不變。再從新上傳到bintray
。
我這裏再來整理下上傳的思路。
既然要上傳到Jcenter
上,天然要去https://bintray.com 中註冊帳號
根據本身的需求建立maven
的Repository
把項目分離成Module
在項目根目錄的build.gradle
中添加bintray
插件
在local.properties
中添加bintray
認證
修改Module
中的build.gradle
中的配置
在Android Studio
終端使用./gradlew xxx
上傳
最後在JFrog Bintray
中同步到Jcenter
中
好了,就到這裏了,但願有所幫助!