發佈自己的android library到maven和jcenter

引言:自己做andorid 開發也有幾年時間了,平時在工作中有記錄問題的習慣,但是一直沒有時間寫博客,剛好這幾天公司項目不是特別忙,就花點時間把自己遇到的這些問題和解決方法整理貢獻出來,希望可以給和我一樣遇到這些問題的同學提供一點幫助,自己經驗不足,寫的不好請大家多多提寶貴意見。
今天的主題是把自己的android library發佈到maven,供其它開發者一起下載使用,廢話不多少開始幹活。

不管是jcenter還是maven cenrer 都是maven庫,jcenter是用bintray.com維護,在android
studio的項目的根目錄的build.gradle 中我們會看到自動幫我們 實現的jcenter.
buildscript {
repositories {
mavenCenter()
}
}

1:註冊com.bintray賬號,github賬號,安裝配置git
com.bintray官網註冊地址:https://bintray.com/
註冊地址:https://bintray.com/signup
這裏寫圖片描述

按照上圖所示的界面註冊自己的bintray賬號,郵箱不能使用qq郵箱,最好使用自己的gmail郵箱或者其他郵箱,否則有可能註冊不成功。

 至於如何註冊github賬號,安裝git以及android sudio中配置這個我就不多廢話了,相信大家都會,網上資料很多也很簡單。

2:創建自己的maven倉庫
使用第一步註冊的賬號登陸到bintray中,第一次登陸進入后里面都是空的,沒有jzw (Maven)這項,因爲我已經創建了一個倉庫。

這裏寫圖片描述

然後點擊Add New Repository 創建自己的倉庫
這裏寫圖片描述

Name:自己的倉庫名稱
Type:倉庫類型,選擇Maven即可
Default Licenses:選擇Apache或者Mit
Description:倉庫描述,不是必選項,但是最好能填寫。
這些信息填寫好之後點擊下面的create按鈕即可成功創建自己的倉庫,成功後的界面和上圖一樣,下面會顯示你剛創建的倉庫名稱。
3:創建自己的android library,並上傳github
如何創建自己的android library我就不再贅述了,沒有人不會吧,如果前面github和git等都配置完善的話,這裏先將自己的庫提交到github
4:配置android studio 中project的build.gradle,local.properties的配置
在項目目錄下的build.gradle文件中做如下配置

buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath ‘com.android.tools.build:gradle:3.0.0’
//額外添加如下兩行代碼
classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3’
classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.5’
} }

打開項目目錄下的local.properties文件,添加如下兩行

bintray.user=xxx
bintray.apikey=xxx

bintray.user的值是自己bintray註冊的用戶名
bintray.apikey的值在bintray中自己的賬戶信息中可以找到,點擊下圖的API key即可獲得。
這裏寫圖片描述
5:配置module 下build.gradle
打開module下的build.gradle做如下配置

//文件開頭配置
apply plugin: ‘com.android.library’
apply plugin:’com.jfrog.bintray’
apply plugin: ‘com.github.dcendents.android-maven’
//項目在github中的地址
def siteUrl = ‘https://github.com/jingzhanwu/RetrofitRxjavaClient
// Git倉庫的url
def gitUrl =’https://github.com/jingzhanwu/RetrofitRxjavaClient.git
Properties properties = new Properties()
properties.load(project.rootProject.file(‘local.properties’).newDataInputStream())

// 文件最後配置
version = “1.1.0” //maven 上發佈版本號
group = “com.jzw” //定義的maven group id最終引用形式,如compile
//’com.jzw:http-retrofit:1.1.0’,其中retrofitclient在後面配置
bintray {
user = properties.getProperty(“bintray.user”)
key = properties.getProperty(“bintray.apikey”)
pkg {
repo = ‘jzw’//自己創建的倉庫名字,直接在bintray賬號下創建的
name = ‘RetrofitClient’//在maven jcenter上顯示的名字,最終引用的名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = [‘MIT’]//不能隨便寫,只能是倉庫創建時選擇的license type
userOrg = ‘name’ //自己的organization(組織)名稱,這裏的組織直接就是自己的用戶名
publish = true // 是否是公開項目,公開別人可以引用
version {
name = ‘1.0’
desc = ’ retorfit rxjava http client library’//描述,自己定義
released = new Date()
vcsTag = ‘v1.0’
attributes = [‘gradle-plugin’: ‘com.use.less:com.use.less.gradle:gradle-useless-plugin’]
}
}
configurations = [‘archives’] }

install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging ‘aar’
name ‘retrofitclient’ //maven的artifact id
description ’ open library.’
url siteUrl
// Set your license
licenses {
license {
name ‘MIT’ //和之前自己定義的協議一致
url ‘https://raw.githubusercontent.com/minggo620/Pluto-Android/master/LICENSE
}
}
developers {
developer {
id ‘username’ //填寫bintray或者github的用戶名
name ‘name’ //姓名
email ‘你的郵箱’//郵箱
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
} } task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = ‘sources’ } task javadoc(type: Javadoc) {
failOnError false //必須添加以免出錯
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 }

javadoc {
options{
//如果你的項目裏面有中文註釋的話,必須將格式設置爲UTF-8,不然會出現亂碼
encoding “UTF-8”
charSet ‘UTF-8’
author true
version true
links “http://docs.oracle.com/javase/7/docs/api
} }

6:使用gradlew 命令安裝 上傳代碼到maven
打開android studio 的Terminal,輸入 gradlew install 安裝,出現 BUILD SUCCESSFULL 表示安裝成功
這裏寫圖片描述
輸入 gradlew bintrayUpload ,出現 BUILD SUCCESSFULL 表示上傳成功。打開自己的bintray倉庫主頁就可以看到剛上傳的代碼。
7:同步到jcenter,等待審覈
打開剛上傳的項目,在項目詳情請頁的右下角 點擊Add to Jcenter,輸入描述 ,點擊send 就可以提交到jcenter了,等待審覈通過後就可以使用了
8:正式使用maven庫中的代碼
compile ‘com.jzw:http-retrofit:2.0’
這是我自己封裝的一個使用retrofit加rxjava封裝的http請求庫,功能比較簡單,使用也方便,
github地址:https://github.com/jingzhanwu/RetrofitClient

今天就先給大家分享這麼多,後續會不定時發佈新內容!

發佈了15 篇原創文章 · 獲贊 21 · 訪問量 6084
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章