android studio gradle 使用jitpack,Android 发布开源库到 JitPack、jCenter

news/2024/7/8 5:25:56

JitPack、jCenter是我们常用的发布Android开源库的网站,发布成功后就可以在Android Studio中通过Gradle方便的引用到项目中了,相比Eclipse时代要方便的多,对于使用者确实简单了,但对于发布者来说可能还略有坎坷,这里记录下发布的过程,以及遇到的坑。

发布到JitPack

一、

准备好项目以及要发布的开源库,并先将其上传到github。

b7552cf8983b

有一点需要注意,上传到JitPack的开源库默认使用项目的名称,而不是要发布的开源库的名称,所以尽量给项目起一个比较优雅的名字(这里我们使用同名)。

二、

1、、在项目的build.gradle添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5',如下图:

b7552cf8983b

2、在要上传的library的build.gralde文件添加如下代码:

// JitPack Maven

apply plugin: 'com.github.dcendents.android-maven'

// Your Group

group='com.github.username'

其中username需要替换为你在github上的用户名

如下图所示:

b7552cf8983b

记得将修改后的代码提交到github哦。

三、

打开项目的github主页,创建一个Release或Tag,可按如下步骤:

1、

b7552cf8983b

2、

b7552cf8983b

3、

b7552cf8983b

4、

b7552cf8983b

四、

1、将项目的仓库提交到JitPack:

b7552cf8983b

2、版本提交完成后,JitPack会自动生成引用该library的配置信息:

b7552cf8983b

最后就可以愉快的在项目中使用了。

发布到jCenter

一、

准备好要发布的library:

b7552cf8983b

二、

1、jCenter属于bintray旗下的一个仓库,所以先要注册账号哦,https://bintray.com

2、按照如下步骤得到API Key,在上传library的时候需要用到。

b7552cf8983b

3、创建一个名字为maven的Repository

b7552cf8983b

4、在maven仓库中创建一个package,注意package的名字和要发布的library的名字相同

b7552cf8983b

三、

关于上传可以使用1、在项目的build.gradle添加bintray-release的classpath:classpath 'com.novoda:bintray-release:0.3.4',如下图:

b7552cf8983b

2、在要上传的library的build.gralde文件添加如下代码:

apply plugin: 'com.android.library'

//新添加

apply plugin: 'com.novoda.bintray-release'

android {

compileSdkVersion 24

buildToolsVersion "24.0.3"

defaultConfig {

minSdkVersion 10

targetSdkVersion 24

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:appcompat-v7:24.2.1'

testCompile 'junit:junit:4.12'

compile 'com.squareup.okhttp3:okhttp:3.5.0'

}

//新添加

publish {

userOrg = 'othershe' //在https://bintray.com上注册的用户名

groupId = 'com.othershe' //jCenter上的路径

artifactId = 'dutil' //要上传的library名称(和二、4中的package相同)

publishVersion = '1.0.0' //library的版本号

desc = 'A download library,that is based on okhttp' //library的简单描述

website = 'https://github.com/Othershe/DUtil' //library的开源地址,例如在github上的地址

}

到这里必须的代码配置就完了,主要的注释都有了,按照上边的编写即可。

四、

1、可以在AndroidStudio的Terminal中执行命令:gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

其中PbintrayUser代表注册的用户名,PbintrayKey就是上边得到的API Key,PdryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传,如下图:

b7552cf8983b

2、不出意外的话等待2到3分钟即可上传成功。但是呢这一步往往有许多的坑呀,这里简单的记录下:

坑1:

b7552cf8983b

这个好处理,主要是因为lint检查时报错,因此中断了整个编译过程,在要上传的library的build.gralde文件的android标签里添加如下代码即可。

android {

lintOptions {

abortOnError false

}

}

坑2:

b7552cf8983b

网上大部分办法都说在项目的build.gradle文件的allprojects 标签里添加如下代码:

allprojects {

tasks.withType(Javadoc) {

options {

encoding "UTF-8"

charSet 'UTF-8'

links "http://docs.oracle.com/javase/7/docs/api"

}

}

}

之前上传另外一个项目确实可行,但这次确无效了,最后找到了如下方案,在项目的build.gradle文件的allprojects 标签里添加如下代码:

allprojects {

tasks.withType(Javadoc) {

options.addStringOption('Xdoclint:none', '-quiet')

options.addStringOption('encoding', 'UTF-8')

}

}

解决了遇到的问题,再执行上传命令,终于成功了:

b7552cf8983b

五、

上传成功后就可以在maven仓库中看到我们的library:

b7552cf8983b

点进去则可以看到详情:

b7552cf8983b

此时我们还不能在项目中引用该库,要将其添加到jCenter,点击上图右下角的按钮:

b7552cf8983b

填写一些对library的描述,然后发送。等待数小时审核通过后会邮件通知你的,之后就可以在项目中引用了:

b7552cf8983b

到这里两种发布方式就介绍完了,布到jCenter的步骤虽然也不算复杂,但很少能一次发布成功,总会被一些问题折腾半天。相比之下发布到JitPack要简单的多,最重要的是省时省力,没有那么多的问题困扰,真是给力呀!如果你也有发布开源库的需求,选择哪种方式相信你也有答案了。


http://www.niftyadmin.cn/n/3660190.html

相关文章

趣闻:JBoss被redhat收购前 曾大骂redhat是狗屎

英文原文:http://www.theregister.co.uk/2006/04/10/fleury_redhat_critic/ 这几天最热门的新闻之一,就是 Linux龙头厂商 Redhat决定以三亿五千万美金,并购也算是龙头级的自由软件厂商 JBoss。JBoss的 Java应用软件服务器目前可以算是全世界最…

android 新闻app无限横移,Android ViewPager相册横向移动的实现方法

当我们第一次下载QQ并且打开的时候,会有一个新手引导,引导是几张图片,再加上一些文字说明,向右滑动,直到结束,今天一大早起来研究了一下关于此种效果的实现之ViewPager控件。下面这个例子将用ViewPager实现…

世界杯历史:1930年---2002年(乌拉圭---韩日)

1930乌拉圭世界杯  1928年的奥运会结束后,国际足联召开代表会议决定举办4年一届的世界足球锦标赛。 1934年意大利世界杯  由于第一届世界杯的成功举办,第二届世界杯在一片热望中如期举行了。 1938年法国世界杯  1938年的世界杯恐怕是气氛最为紧张…

手机android图片上传,android自定义View实现图片上传进度显示(仿手机QQ上传效果)...

首先看下我们想要实现的效果如下图(qq聊天中发送图片时的效果):再看一下我实现的效果:1、效果已经看见了,下面我们来实现它。首先我创建一个android工程ProgressImageView。然后我们重写ImageView控件,创建ProcessImageView类代码…

世界杯比赛播报

10日星期六00:00 德国 VS 哥斯达黎加 4:2 拉姆,6;克洛斯,17,61;弗林斯,87;万乔普,13,73 A慕尼黑103:00波兰 VS 厄瓜多尔 0: 2C.特诺里奥,23: 德尔,79A盖尔森基兴221:00英格兰 VS 巴拉圭B法兰克福36月11日星期日00:00特立尼达和多巴哥 VS 瑞典B多…

android摄像头旋转花屏,Android OpenGL YUV 旋转花屏解决、Camera获取图像

一个自拍app,如何获取我们的surface view的截屏?在Camera的onPreviewFrame回调中(继承的PreviewCallback接口)。我们可以获取到data数组,里面存放着就是实时的图片data数组转文件为null,且转bitmap也为null怎么办?data…

华为为什么以前不用鸿蒙,不用鸿蒙的原因来了:会让华为增长变慢

华为有点实力啊~~~华为有点实力啊~~~前些日子,华为方面发布了国产操作系统“鸿蒙OS”(以下简称鸿蒙系统),当时就有消息称华为Mate30系列手机将会首发鸿蒙系统,但就在16号,华为掌门任正非在接受采访时表示:华为如果使用…

微软美国techED 2006 10 大看点

1. The CTP 1 release of SQL Server Everywhere. 微软的面向移动的数据库技术测试版本.2. The Beta 2 drop of WinFS. 微软新一代文件系统,原本将作为Vista和longhorn的一部分发布。但据最新消息,Windows Server chief Bob Muglia 表示,它可能会作为微软…