Android Studio提交庫至Bintray jCenter從入門到放棄
平常在工作中我們常常會引用到第三方開源庫,比如butterknife, Gilde, RxJava等等。其中最簡單方便快捷的方式就是在gradle中用compile引用,例如
compile 'io.reactivex:rxjava:1.1.3'
有沒有想過自己也寫一個開源庫提供一個引用給別人用?本文介紹如何自己建立一個庫給別人用。
首先你要得有庫
建立庫很簡單,網上有大把的事例教程,為了節約篇幅本文只做簡單介紹。
在AndroidStudio中先建立一個普通工程,再建立好的工程上右鍵選擇->New->Module
在彈出窗中選擇’Android Library’,這樣建立的就是傳說中的aar包了,一個類似傳統jar的包。
然後取一個霸氣的名字,這樣就搞定了!(但是如果你想讓你的主工程用到這個lib還需要在build.gradle中配置一番,網上文章很多不做介紹)
接下來是Bintray和jCenter
啥是Bintray?啥是jCenter?
首先說jCenter,是一個程式碼庫,相當於一個公共的儲存控制元件,簡單的來講就是你把你寫好的aar檔案及一些文件描述檔案之類的東西打包上傳到jCenter伺服器上,其他人就可以通過jCenter伺服器下載到你上傳的包了。
那Bintray又是啥?Bintray是jCenter的提供商,他支援上傳lib到多個平臺,jCenter只是眾多平臺中的一個,形象的說jCenter是位於某地的倉庫,Bintray是送貨的卡車,你寫的庫就是貨了。
因此我們要想把自己寫的lib分享給其他人,就必須通過Bintray上傳到jCenter。首先我們要去Bintray上註冊一個賬號,或者用Github帳號直接登入。
登入後,在
在工程的Root gradle中加入
dependencies {
....
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
可參考
在library的gradle中加入:
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version = "0.1.1" // 修改為你的版本號
def siteUrl = 'https://github.com/h3clikejava/ExtendImageView' // 修改為你的專案的主頁
def gitUrl = 'https://github.com/h3clikejava/ExtendImageView.git' // 修改為你的Git倉庫的url
group = "h3c.extendimageview" // 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 'auto extand ImageView for Android.' //專案描述
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 'H3c' //填寫的一些基本資訊
name 'H3c'
email ' [email protected]'
}
}
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"
name = "extend-imageview" //釋出到JCenter上的專案名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
程式碼有點亂,懶癌犯了,其實蠻簡單的,複製上面這一段,修改成自己的引數就好了。具體可以參考這裡
這裡還需要將你的bintray使用者名稱和apikey寫到工程的local.properties檔案中
// 示例值, 僅供參考
bintray.user=h3 // your bintray user name
bintray.apikey=c5434272d522d35d1a0123459981225564155753 // your bintray api key
OK,以上配置完就準備上傳到Bintray。
通過gradew執行即可
gradew install
gradew bintrayUpload
通常大家都會失敗的,原因很多。這裡非常坑爹的不做介紹!因為本文後續會教你放棄這個冗長又及其容易失敗的方法。
如果你編譯成功且正常上傳到Bintray,那麼恭喜你,你真是太牛了,接下來對於你來說就很容易了
在Versions看到你的版本就說明成功了,接下來點選Add to JCenter
輸入一些描述就等待稽核。稽核完成後即可在第三方庫中引用了。
更簡單的方式novoda
看完以上的內容,相信你已經知道如何寫一個lib庫,並通過bintray上傳到jCenter了。但是有沒有覺得真的好複雜…build.gradle中要配置好多東西,幾乎沒法自己閉著眼睛寫出來,只能從網上搜索了貼上。
接下來介紹一個更簡單的方式是用novoda庫,它還是使用了bintray和jCenter,但是會大大簡便build.gradle的配置方法。
首先在Root gradle中加入這句話
apply plugin: 'com.novoda.bintray-release' // must be applied after your artifact generating plugin (eg. java / com.android.library)
注意,他必須寫在com.android.library 的下面
其次在你的lib gradle中寫上這個
publish {
userOrg = 'novoda'
groupId = 'com.novoda'
artifactId = 'bintray-release'
publishVersion = '0.3.4'
}
在android{} 中需要加入
lintOptions {
abortOnError false
}
這個時候在AS的終端中執行
$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
把BINTRAY_USERNAME 替換成你的bintary的名字BINTRAY_KEY 替換成你的 Bintray的key 即可
如果成功就恭喜你,如果失敗….那原因就很多了,本文坑爹的不做介紹!用飄柔就是這麼自信,喜歡Bintray jCenter的同學們自己折騰去吧!
文尾福利,沒錯我就是飄柔
jCenter應該是目前應用最廣的第三方gradle倉庫了,但是其申請建立編譯上傳等流程實在是太麻煩了,感覺是上個世紀八十年代的產物,還需要上傳,自己編譯,稽核之類的,超級容易失敗有木有???
本文決定拿出珍藏多年的82年飄柔給大家,博主先乾為敬!
JitPack也是一個程式碼倉庫,等同於jCenter,只是暫時用的人沒有jCenter多,但是越來越多的開源專案開始使用JitPack了。
真的非常非常的簡單,有多簡單我們來看看。
比如博主寫了一個自用的Android基礎庫,便於快速構建工程,地址是:
AFastProject(不給我打賞的童鞋記得幫我點星…),由於引用了第三方的庫,所以用本文上面兩種方式釋出aar都出現了問題,各種各樣,要麼就是無法編譯,要麼就是丟包,反正折騰了好久。最後用JitPack一句話解決了。。。。
在輸入框中輸入你的Github工程地址,點選Look up
他會自動遍歷出你的最近提交和釋出的版本
點選你要引用的選擇Get it
在文尾就會告訴你如何引用。
是的,你沒看錯,客戶端什麼都不用改。其他工程可以直接引用!
呵呵……用飄柔就是這樣麼自信
相關推薦
Android Studio提交庫至Bintray jCenter從入門到放棄
平常在工作中我們常常會引用到第三方開源庫,比如butterknife, Gilde, RxJava等等。其中最簡單方便快捷的方式就是在gradle中用compile引用,例如 compile 'io.reactivex:rxjava:1.1.3'
ubuntu下Android Studio 提交程式碼至Github
1. Github註冊 填寫使用者名稱,郵箱,密碼,這裡不再贅述。 2. 在Github上建立repository 點選右側的 new repository 建立倉庫,依次是,倉庫
Android Studio 上傳庫至Bintary JCenter 流程
註冊賬號 地址:https://bintray.com/ 可用第三方登入(github) 在個人資料裡找到API Key 儲存下,之後上傳有用 新建 Maven Repositor 和Package 在專案 root gradle 新增外掛cl
Android Studio提交程式碼到SVN
目的:1、將AndroidStudio中的Android專案提交給svn;2、從svn下載已儲存的android專案。 準備條件:1、svn客戶端和服務端;2、建立一個android專案 步驟: 1、安裝svn客戶端 當出現這個頁面時,在下拉框裡選擇第一個; 安裝完後找到它
android studio提交到開源git時出現:fatal: refusing to merge unrelated histories的解決辦法
android studio提交到開源git時出現:fatal: refusing to merge unrelated histories的解決辦法 1.cmd進入專案的根目錄。 2.執行下面的命令:git pull origin master –allow-unrela
關於Android Studio提交程式碼到Git上的操作(Mac)
第一步、先使用Android Studio建立一個新的Android工程。 第二步、在工具欄點選VCS,選擇Enable Version Control Integration, 之後會將版本控制選擇彈框開啟,如下圖所示: 第三步、選擇彈框中project root為Git
Android Studio平臺下使用hellochart實現從txt檔案讀取資料繪折線圖
Android Studio平臺下使用hellochart實現從文字讀取資料繪折線圖 本人是一個剛剛接觸Android不超過兩個月的小白,最近在做的論文是關於這一塊的相關內容。所有的東西都是自學的,聽導師的建議也是第一次留個這樣的資料,可能有很多地方理解不到位,
Android Studio將庫引入到專案中出現錯誤(例如Glide)
在學習的過程中,由於書上的版本,不能與自己的Android studio各種庫的版本相互對應。有時候錯誤資訊並不是只提示某個庫出現錯誤,而是會引發各種各樣的錯誤,直接導致相對應的控制元件無法使用。 所以可以採用一種方法去引入庫。 1、點選File,開啟Pro
Android Studio之maven Central,JCenter
Android studio 是從哪裡得到庫的? Android Studio是從build.gradle裡面定義的Maven 倉庫伺服器上下載library的。Apache Maven是Apache開發的一個工具,提供了用於貢獻library的檔案伺服器。總
Android Studio中gradle構建依賴JCenter下載太慢的解決方案
方案一:將jcenter下載由https修改為http,即由https://jcenter.bintray.com/調整http://jcenter.bintray.com/。 在build.gradle裡,增加jcenter(){url 'http://jcenter/bi
Android Studio 第三方庫依賴
說明:有關這些第三方庫的最新依賴,可以自己到GitHub上去搜索,新增相應版本即可: OkHttp:一個處理網路請求的開源專案,是安卓端最火熱的輕量級網路框架,由Square公司貢獻 簡介:用於替代HttpUrlConnection和Apache HttpC
Android Studio 提交專案到新的Git地址 怎麼修改
原文地址:http://blog.csdn.net/sunsteam/article/details/73478045 方法有三種: 1.修改命令 git remote set-url origin [url] 例如:Git remote set-url o
Android studio提交程式碼到[email protected]
2,有Android studio開發環境 3,在OSC上建立專案 4,android studio建立本地專案,create git repository,選擇當前專案的根目錄: 5,以下為命令列操作:開啟本地的git bash命令列工具,cd進入專案資料夾位置,
Android studio so庫找不到問題
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[ zip file "/dat
Ubuntu將Android Studio圖示設定至左側欄
ubuntu中預設的是gnome桌面,也可以為你的程式設定快捷方式 下載好androidstudio並且配置好環境後, echo $PATH /home/yyb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/us
Android Studio之maven Central,JCenter(build.gradle、gradle-wrapper.properties、gradle.properties)
Android studio 是從哪裡得到庫的? Android Studio是從build.gradle裡面定義的Maven 倉庫伺服器上下載library的。Apache Maven是Apache開發的一個工具,提供了用於貢獻library的檔案伺服器。總的來說,只
Mac Android studio提交本地專案到Github 以及配置 SSH KEY
在本地配置ssh key祕鑰 配置好之後上面的圖這裡需要它 3 開始本地配置ssh key,首先檢視本地電腦是否有配置過ssh,進入終端 敲入$ defaults write com.apple.finder AppleShowAllFiles -b
[android ndk]android studio動態庫生成及jni底層呼叫步驟
android studio動態庫生成及jni底層呼叫步驟 1、建立一個用於關聯c程式碼的類(對映類) 方法名需要加native修飾 public class NDKUtils { public static native int getSum
Android Studio 2.3使用CMake方式NDK入門
在嚮導的 Configure your new project 部分,選中 Include C++ Support 複選框。點選 Next。正常填寫所有其他欄位並完成嚮導接下來的幾個部分。在嚮導的 Customize C++ Support 部分,您可以使用下列選項自定義專案:C++ Standard:使
新裝Android Studio中Gradle下載慢、Could not get resource 'https://jcenter.bintray.com/...'問題
Gradle是一個版本控制以及靈活構建app的應用,但Gradle的使用有很多坑: 比如Android Studio(以下簡稱AS)在構建第一個新工程的時候自動下載gradle速度很慢.. 或者Gradle在自動下載網路庫的時候經常Could not get resource 'https: