Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)
我们经常使用github上的开源项目,使用步骤也很简单
比如:
compile 'acffo.xqx.xwaveviewlib:maven:1.0.0'
这里就学习一下如何将自己的类库做出这种可以供他人使用的开源项目。
一、Android studio项目准备

这时候我们想写了一个自定义控件,想要传到github上让别人使用。
1、先在该项目下创建一个Module

2、选择Android Library

3、填写类库名称

4、此时的目录结构

注意,开源出去的是library类库,所以需要在类库中写自定义控件或者其他代码,而不是在app目录下
5、创建一个自定义控件View

6、在app目录下 写使用该类库的相关示例代码 ,让app依赖该类库

二、Bintray准备
1、首先创建一个Bintray账号,注册地址 https://bintray.com/signup/oss 注意这是个人账号注册,很多文章给的链接是公司账号注册。
有个注意点:邮箱不能是163的 也许还有别的也不能使用,建议使用谷歌的gmail邮箱。
2、创建找好成功之后,选择创建组织

可以看到已经创建好的组织

3、选择进入一个,比如我进入xqxlibrary组织 ,然后界面如下,再继续点击创建仓库

4、创建仓库界面如下

创建完成之后可以看到xqxlibrary组织下多了一个仓库

5、最后我们要记录一下自己的Bintray用户名 和 API Key 值,Android studio配置的时候需要


复制API Key
三、Android Studio 项目 配置
1、根目录下的build.gradle 配置
在 dependencies{} 中添加
classpath 'com.novoda:bintray-release:0.3.4'
在allprojects中添加:
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
最终如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.novoda:bintray-release:0.3.4'
}
}
allprojects {
repositories {
jcenter()
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
2、module目录下的build.gradle 配置
(1)、最顶端添加代码
apply plugin: 'maven'
apply plugin: 'com.novoda.bintray-release'
(2)、Bintray配置资料区
//添加
publish {
userOrg = 'xqxlibrary' // 组织名
groupId = 'acffo.xqx.mycustomview' //类库的包名
artifactId = 'maven' // 工程名 ,自定义
publishVersion = '1.0.0' //版本号
desc = '波浪流动效果' //描述
website = 'https://github.com/BestCoderXQX/XWaveView' //github地址 你可以把你的项目push到你的github上 , 项目的地址即这个地址
}
全部代码:
apply plugin: 'com.android.library'
apply plugin: 'maven'
apply plugin: 'com.novoda.bintray-release' android {
compileSdkVersion 25
buildToolsVersion "25.0.3" defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
}
//添加
publish {
userOrg = 'xqxlibrary'
groupId = 'acffo.xqx.xwaveviewlib'
artifactId = 'maven'
publishVersion = '1.0.0'
desc = '波浪流动效果'
website = 'https://github.com/BestCoderXQX/XWaveView'
}
四、执行Gradlew命令语句
gradlew clean build bintrayUpload -PbintrayUser=a463674420 -PbintrayKey=6f5e4e11d2d253a2d4************** -PdryRun=false
解释如下:
gradlew clean build bintrayUpload
-PbintrayUser=a463674420 (这里是网站头像旁边对应的帐号,有可能跟网址上面的不一样,一定要区分好)
-PbintrayKey=6f5e4e11d2d253a2d4************** (这个是上面让大家复制保存下来的API key)
-PdryRun=false(如果是false那么就会真实提交,如果是true不会去进行真实提交,但是会编译,可以去查看是否编译通过在提交)
执行到SUCCESSFUL 即表示成功了。

五、提交审核
找到建的组织下的仓库 , 会发现 多了一个package

点击进入 ,点击右侧的"Add to JCenter"即可提交审核 ,用的时候点击左下侧的'Gradle'即可

Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)的更多相关文章
- 应用程序框架实战三十八:项目示例VS解决方案的创建(一)
进行项目开发的第一步,是创建出适合自己团队习惯的VS解决方案,虽然我已经提供了项目示例,但毕竟是我创建的,你直接使用可能并不合适,另外你如果尝试模仿重新创建该示例,中间可能碰到各种障碍,特别是项目间的 ...
- Android项目实战(十九):Android Studio 优秀插件: Parcelable Code Generator
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Gen ...
- Android开发实战(十八):Android Studio 优秀插件:GsonFormat
Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Gen ...
- Android项目实战(十四):TextView显示html样式的文字
项目需求: TextView显示一段文字,格式为:(消息个数,不确定)条消息 这段文字中名字和数字的长度是不确定的,还要求名字和数字各自有各自的颜色. 一开始我想的是用(转) SpannableStr ...
- android 项目学习随笔十八(三级缓存)
xUtils的BitmapUtils模块用的就是三级缓存,在项目中尽量还是应用BitmapUtils 三级缓存(机制) import com.itheima.zhsh66.R; import andr ...
- Android项目实战(十):自定义倒计时的TextView
项目总结 -------------------------------------------------------------------------------------------- 有这 ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记十八之铭文升级版
铭文一级: 功能二:功能一+从搜索引擎引流过来的 HBase表设计create 'imooc_course_search_clickcount','info'rowkey设计:也是根据我们的业务需求来 ...
- Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件
大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: .QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于 ...
- Android项目实战(十二):解决OOM的一种偷懒又有效的办法
在程序的manifest文件的application节点加入android:largeHeap=“true” 即可. 对,只需要一句话! 那么这行代码的意思是什么呢? 简单的说就是使该APP获取最大可 ...
随机推荐
- 使用apache进行域名绑定
[背景] 项目需要搭建一套mysqlapi的开发环境,进行域名绑定 [方法] 主要方式通过修改apache的vhost配置文件,重启apache服务,以及最终在客户端绑定hosts. 1.查看apac ...
- ArrayList迭代过程删除问题
一:首先看下几个ArrayList循环过程删除元素的方法(一下内容均基于jdk7): package list; import java.util.ArrayList; import java.uti ...
- jfinal 源码学习
源由 最近闲来无事,顺带看了下jfinal的源码,以下均为自己的个人理解,如有错误请指定: jfinal 使用 在web.xml中配置JfinalFilter 并定义JfinalConfig的类 自定 ...
- web-故道白云&Clound的错误
web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method="get"同时 ...
- 初试pyspider
灵感来源: https://zhuanlan.zhihu.com/p/31421316 抓取页面: https://www.nvshens.com/tag/new/ 页面分析: 首页获取所有图片详情页 ...
- input type="radio" 赋值问题
之前项目中 后台传值 然后赋给单选input 在网上找了好久,现在有时间了,整理一下 ,方便以后有人会用到. $('radio[name="sex"][value'" ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- linux用户、组、权限问题
用户.组.权限一.权限:r, w, x1.文件权限: r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x: 可执行,eXacutabl ...
- java 事件处理
Java事件处理机制:EventObject类作为描述事件信息的事件信息类的基类,由EventListener接口派生新的接口或类来作为事件接收方的类,再定义事件源类. 事件信息类的构造方法必须含有事 ...
- NOIP2016提高组初赛(2)四、阅读程序写结果2、
#include <iostream> using namespace std; int main() { ][], b[][]; ]; string tmp; , j = , k = , ...