編輯:關於android開發
大家在很多時候都希望讓自己的開源項目可以更方便的讓用戶去使用,那麼對於Android平台,一個很好的方式就是上傳到jcenter,然後使用時通過添加compile
引用即可。
對於上傳到jcenter,也不算技術類的文章,而且已經有很多較好的文章可以參考,寫之前我也大致百度了一下。
目前很多文章都是以gradle-bintray-plugin
這個插件做上傳,多數文章的介紹都是針對普通的開源項目的(即不包含編譯時注解相關)。那麼對於用到編譯時注解,因為涉及到多個module
,上傳可能會比較麻煩。
本文准備采用bintray-release
這個插件,個人感覺比gradle-bintray-plugin
要方便很多。
使用bintray-release
發布一般項目到jcenter 使用bintray-release
發布編譯時注解項目到jcenter
ok,首先你應該有一個待上傳的項目。
那麼我們這裡模擬一個簡單的項目。
可以看到我們的basetools是個Android library,主要用來存放一些工具,我們現在要將其上傳到jcenter。
那麼,對於你,應該已經有了這樣一個Android library,處於待上傳的狀態。
為什麼要注冊這個賬號呢,因為jcenter()
屬於bintray旗下的一個倉庫。
我們的上傳流程其實就是,從你的Androd Studio,到你的bintray 倉庫,最後同步到jcenter倉庫。
進入https://bintray.com/,注冊賬號。 注冊完成後,需要郵箱激活;也可以選擇第三方登錄。注冊完成後,登錄,這兩步屬於非職業玩家都能搞定的。
登錄後:
登陸後,你可以點擊Your Profile
->Edit
然後就能看到上圖的界面。
點擊API Key,就可以看到你一段key字符串,把這個copy下放一邊,一會上傳要用。
在你的項目的build.gradle添加bintray-release
的classpath,注意是項目的build.gradle,不是module的,針對文章開始的圖即UploadJcenterTest/build.gradle
。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.novoda:bintray-release:0.3.4'
}
}
來到你想要上傳的module,針對文章開始的圖即UploadJcenterTest/basetools/build.gradle
。
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加
android {
//保持不變
}
dependencies {
//保持不變
}
//添加
publish {
userOrg = 'hyman'//bintray.com用戶名
groupId = 'com.hyman'//jcenter上的路徑
artifactId = 'basetools'//項目名稱
publishVersion = '1.0.0'//版本號
desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要
website = 'https://github.com/hyman/basetools'//網站,不重要
}
按照上面編寫即可,細節有標識注釋了,假設按照上述的編寫,最終引入的方式為:
compile 'com.hyman:basetools:1.0.0
完成上面的配置後,就准備上傳了。
上傳很簡單,執行下面的代碼即可
./gradlew clean build bintrayUpload
-PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
user就是用戶名,key就是我們剛才的讓你保存的key,dryRun是一個配置參數,當為true的時候,會運行所有的環節,但是不會上傳。
ok,下面整理好上面的這段代碼,運行即可。關於運行,你可以選擇在Android Studio的Terminal面板進行,如下圖。
點擊底部的Terminal即可,注意下你當前的路徑是當前項目下,然後enter運行。
然後就是等待,當運行完成,看到BUILD SUCCESSFUL
就沒問題了,如果有什麼問題呢,根據log排查下。
到此就上傳完成了~~~
你可以訪問https://bintray.com/你的用戶名/maven
,即可看到:
看到我們上傳的項目了,你可以點擊進去看該庫的一些信息,但是注意此時還不能夠直接被引用。
點擊進去該庫,按照下圖,點擊Add To jcenter
然後隨便寫一下對你該庫的描述,然後點擊發送就可以了。
ok,到此就結束了,不過目前還是不能直接引用的,你需要等待bintray的工作人員審核,審核通過會給你發送站內Message,並且Add to Jcenter
那個按鈕就小時了,此外你還可以根據你上傳的groupId,訪問該網站https://jcenter.bintray.com/你的groupId
例如https://jcenter.bintray.com/com/hyman/
如果可以引用,則能看到如下:
最後總結下整個過程,其實非常簡單:
申請賬號 引入bintray-release,在需要上傳的module裡面填寫相關publish的信息 調用上傳的命令Add to Jcenter
提交審核
基本都是步驟化的東西,真正需要我們填寫的也就publish裡面幾個信息。
ok,接下來看上傳編譯時注解的項目。
如果你暫時不需要這個需求,其實沒必要往下看,因為並不屬於技術類文章,了解這裡有寫,可以收藏下,遇到需求再回來看就好了。
其實也很簡單,按照步驟做就好。
我們這裡找一個項目作為演示。
為什麼說編譯時注解的項目特殊呢?
因為它一般會涉及到多個moudle,比如上圖,涉及到compilter
、permission-annotation
、permission-lib
。
我們在上傳時,這3個module都要進行上傳,這裡暫不涉及為啥會這麼分module相關知識。
其實利用bintray-release
上傳的過程也很簡單。
首先針對項目的build.gradle,即圖中MPermissions/build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'com.novoda:bintray-release:0.3.4'//添加
}
}
allprojects {
repositories {
jcenter()
}
}
//添加
ext {
userOrg = 'hongyangandroid'
groupId = 'com.zhy'
uploadName = 'MPermission'
publishVersion = '1.0.1'
desc = 'a easy API to use runtime permission for Android M '
website = 'https://github.com/hongyangAndroid/MPermissions'
licences = ['Apache-2.0']
}
只要關注添加的部分,底部的ext主要是為了上傳多個module統一管理的。
剩下就是compilter
、permission-annotation
、permission-lib
這三個module,這三個模塊的處理其實是一致的:
apply plugin: 'com.android.library'
apply plugin: 'bintray-release'//添加
android {
}
dependencies {
}
//添加
publish {
artifactId = 'mpermission-api'
userOrg = rootProject.userOrg
groupId = rootProject.groupId
uploadName = rootProject.uploadName
publishVersion = rootProject.publishVersion
desc = rootProject.description
website = rootProject.website
licences = rootProject.licences
}
3個模塊的配置是一樣的,唯一不同的就是publish中的artifactId
,不同的module應該有它不同的名字。
對所有需要上傳的module配置完成後,和上面一樣,運行上傳的命令即可。
./gradlew clean build bintrayUpload
-PbintrayUser=hyman
-PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx
-PdryRun=false
你可以選擇在Android Studio的Terminal面板進行,如下圖。
ok,然後就和上面普通項目的步驟一致了,去Add to Jcenter
,之後等待。
如果審核成功,你會發現3個module都會被同步到jcenter上,比如訪問http://jcenter.bintray.com/com/zhy/
:
在使用時,對於compiler需要引入apt的插件,大致類似如下用法:
apply plugin: ‘com.neenbedankt.android-apt’
dependencies {
apt ‘com.zhy:mpermission-compiler:1.0.0’
compile ‘com.zhy:mpermission-api:1.0.0’
}
ok,當然本文的重點在於上傳,其他方面細節就不贅述了。
那麼如何利用bintray-release
上傳開源項目到jcenter就介紹完畢了,希望能夠節省你的時間~
Android 指紋認證,android指紋認證安卓指紋認證使用智能手機觸摸傳感器對用戶進行身份驗證。Android Marshmallow(棉花糖)提供了一套API,使
Android開發學習之路--Service之初體驗 android最後一個組件便是service了,終於學習到最後一個組件了,從年前的開發環境的搭建,到現在學到最後
Linux內核系列—4.操作系統開發之LDT,linuxldt一直以來,我們把所有的段描述符都放在GDT中,而不管它屬於內核還是用戶程序,為了有效地在任務之間實施隔離,處
Android ExpandableListView相關介紹 一、ExpandableListView介紹 一個垂直滾動的顯示兩個級別(Child,Group)列