发布自己的android library到maven和jcenter

来源:互联网 发布:java自带的观察者模式 编辑:程序博客网 时间:2024/05/16 14:55

引言:自己做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=xxxbintray.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.retrofitclient: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 = ‘jingzhanwu’ //自己的organization(组织)名称,这里的组织直接就是自己的用户名
publish = true // 是否是公开项目,公开别人可以引用
version {
name = ‘1.0’
desc = ‘jzw 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 ‘jzw open library.’
url siteUrl
// Set your license
licenses {
license {
name ‘MIT’ //和之前自己定义的协议一致
url ‘https://raw.githubusercontent.com/minggo620/Pluto-Android/master/LICENSE’
}
}
developers {
developer {
id ‘jingzhanwu’ //填写bintray或者github的用户名
name ‘jzw’ //姓名
email ‘jingzw@daoshuit.com’//邮箱
}
}
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:retrofitclient:1.1.0’
这是我自己封装的一个使用retrofit加rxjava封装的http请求库,功能比较简单,使用也方便,
github地址:https://github.com/jingzhanwu/RetrofitClient

今天就先给大家分享这么多,后续会不定时发布新内容!

阅读全文
0 0
原创粉丝点击