前面我们使用自己封装的okhttp项目时候,只需要app/build.gradle文件中加一行代码就能使用项目。

compile 'com.ansen.http:okhttpencapsulation:1.0.1'

那是因为我之前就把封装的module提交到了jcenter服务器。所以android sutdio把从jcenter服务器把类库下载下来。

提交项目到jcenter

当我们做好一个轮子的时候,或者项目中有一些好的module想分享给别人用的时候,首先把代码提交到github(全球男性交友平台)上开源,但是这还不够,别人拿你的代码作为module依赖太麻烦了,比较酷的方法应该是一行代码引用。

首先我们得有一个jcenter账号

这个网站注册有点坑爹,有两种方式(企业版跟个人免费版),个人版的项目必须要开源,个人注册地址如下:

https://bintray.com/signup/oss

一定要注意不要注册了企业版,没法直接切换成个人版,必须要得试用期过重新注册。用我贴的链接注册就行。还有注册邮箱不能是国内163邮箱或者qq邮箱,我用的是google邮箱注册的。

上传项目到jcenter

jcenter上创建Repository

登录jcenter账号,进入用户首页,点击Add New Repository按钮。

进入Add New Repository页面,Name输入框输入module名称(okhttpencapsulation),Type选择Maven。然后点击最后的Create按钮,Repository就创建成功了。

Android Studio中添加代码

项目的build.gradle中加入如下代码:

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'

修改后效果图如下:

修改要上传的module下的build.gradle。例如我这边路径是:OkHttpEncapsulation/okhttpencapsulation/build.gradle。在文件尾部增加如下代码:

// 这里添加下面两行代码。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray' // 定义两个链接,下面会用到。
def siteUrl = 'https://github.com/ansen666/OkHttpEncapsulation' // 项目主页。
def gitUrl = 'https://github.com/ansen666/OkHttpEncapsulation.git' // Git仓库的url。 group = "com.ansen.http"// 唯一包名,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的com.ansen.http就是这里配置的。
version = "1.0.1"//项目引用的版本号,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的1.0.1就是这里配置的。 install {
repositories.mavenInstaller {
// 生成pom.xml和参数
pom {
project {
packaging 'aar'
// 项目描述,复制我的话,这里需要修改。
name 'okhttpencapsulation'// 可选,项目名称。
description 'okhttp project describe'// 可选,项目描述。
url siteUrl // 项目主页,这里是引用上面定义好。 // 软件开源协议,现在一般都是Apache License2.0吧,复制我的,这里不需要修改。
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
} //填写开发者基本信息,复制我的,这里需要修改。
developers {
developer {
id 'ansen' // 开发者的id。
name 'ansen' // 开发者名字。
email 'iprivateworkemail@gmail.com' // 开发者邮箱。
}
} // SCM,复制我的,这里不需要修改。
scm {
connection gitUrl // Git仓库地址。
developerConnection gitUrl // Git仓库地址。
url siteUrl // 项目主页。
}
}
}
}
} // 生成jar包的task,不需要修改。
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
} // 生成jarDoc的task,不需要修改。
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
// destinationDir = file("../javadoc/")
failOnError false // 忽略注释语法错误,如果用jdk1.8你的注释写的不规范就编译不过。
} // 生成javaDoc的jar,不需要修改。
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
} // 这里是读取Bintray相关的信息,我们上传项目到github上的时候会把gradle文件传上去,所以不要把帐号密码的信息直接写在这里,写在local.properties中,这里动态读取。
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user") // Bintray的用户名。
key = properties.getProperty("bintray.apikey") // Bintray刚才保存的ApiKey。 configurations = ['archives']
pkg {
repo = "okhttpencapsulation" //Repository名字 需要自己在bintray网站上先添加
name = "okhttpencapsulation"// 发布到Bintray上的项目名字,这里的名字不是compile 'com.ansen.library:circleimage:1.0.1'中的circleimage。
userOrg = 'anhui'//Bintray的组织id
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true // 是否是公开项目。
}
}

都有注释,当有时候的时候直接复制代码就行。然后修改一些值。在最后的bintray里面有从local.properties文件中获取用户名跟apikey。这是保密信息,我们不能暴露给别人,build.gradle文件我们会提交到git服务器上,但是local.properties文件不会提交。

打开OkHttpEncapsulation/local.properties文件,在尾部添加两行,这个key是我随便修改过的,是个错误的key,需要自己去替换:

bintray.user=anhui
bintray.apikey=ac8137c9138a8b49a18a323260041fcf1f75a6f

user是我们注册的名字,apikey需要去jcenter官网查看。进入修改用户界面,点击左侧apikey按钮,然后输入密码就能看到了。把这个key复制到local.properties中替换掉。

gradle命令上传

上传项目到jcenter需要用到gradle命令,首先把gralde加入到环境变量。mac下加入环境变量教程,windows环境不会加入环境变量的自行搜索下:

http://blog.csdn.net/u013424496/article/details/52684213

在android studio底部有个Terminal的按钮。点击它进入Terminal界面。

输入命令:

gradle install

出现BUILD SUCCESSFUL就表示成功了。

继续输入命令,提交项目到bintray:

gradle clean build bintrayUpload

这个命令会提示上传进度,上传到100%就成功了最后也会出现BUILD SUCCESSFUL。到了这一步你的进度条已经到了90%了,就差最后一步了。

Add to JCenter

我们提交成功了之后呢赶紧打开jcenter官网看看有没有成功。在首页点击我们的package(okhttpencapsulation)名称,在这个页面应该就能看到我们提交的项目了,点击项目进入项目详细页。



我们可以看到版本,看到gradle在线引用的代码,还能切换到Maven跟lvy方式。然后右边有个Add to JCenter,每个项目刚刚提交都必须要审核的,所以我们点击Add to JCenter去进行审核。审核成功就能一行代码引用这个module啦。

源码下载

如果你想第一时间看我的后期文章,扫码关注公众号,每周不定期推送Android开发实战教程文章...

      Android开发666 - 安卓开发技术分享
扫描二维码加关注

Android Studio发布项目到jcenter,一行代码引入Module的更多相关文章

  1. 如何通过Android Studio发布library到jCenter和Maven Central

    http://www.jianshu.com/p/3c63ae866e52# 在Android Studio里,如果你想引入任何library到自己的项目中,只需要很简单的在module的build. ...

  2. Android Studio 之 项目瘦身、代码检查

    项目瘦身, 一.删除没有用到的资源(图片,string 等等) 先看怎么样找到没有用到的资源,注意:注释掉的 也属于没有用到的. 1.进行代码分析操作 2.查看分析结果 3.选择 Unused res ...

  3. android studio发布项目到github

    点击file   setting  ,打开对话框,如下,判断git是否安装成功 选择GitHub,填写github地址及密码 发布项目:

  4. Android快速发布项目到jcenter详解

    不管别人的教程多详细,都有他们忽略的坑,所以,都要自己动手.我也是参考了许多许多的博客,弄了一上午加下午十分钟,才搞定. 参考: 下面这个是大部分的步骤 http://blog.csdn.net/zh ...

  5. 如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  6. Android Studio向项目添加C/C++原生代码教程

    说明:本文相当于官方文档的个人重新实现,官方文档链接:https://developer.android.com/studio/projects/add-native-code 向项目添加C/C++代 ...

  7. 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)

    上篇文章:如何将Android Studio与华为软件开发云代码仓库无缝对接(一) 上一章讲了,如何用Android Studio以软件开发云代码仓库为基础,新建一个项目.接下来,这一章继续讲建好项目 ...

  8. 使用Gradle发布项目到JCenter仓库 (转载)

    原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛.JCenter现在是Android Stu ...

  9. android studio新项目时提示:Plugin is too old, please update to a more recent version

    今天想写一个程序来测试一下android studo代码,但是创建好项目后,提示: Error:(1, 0) Plugin is too old, please update to a more re ...

随机推荐

  1. 【CSS】div父容器根据子容器大小自适应

    Div即父容器不根据内容自动调节高度,我们看下面的代码: <div id="main"> <div id="content"></ ...

  2. javascript中typeof和instanceof用法的总结

    今天在看相应的javascript书籍时,遇到了typeof和instanceof的问题,一直不太懂,特地查资料总结如下: JavaScript 中 typeof 和 instanceof 常用来判断 ...

  3. HDU - 3853

    LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Sub ...

  4. 在同一个sql语句中,统计不同条件的Count数量

    前几天帮同事优化了个SQL,原写法使用多个子查询这里不再重现了,大家都遇到过这样一种情况,在项目后期的维护中, 修改别人的SQL代码,超过30行的语句,多层子查询,读起来很坑,时间久的项目伴随着人员的 ...

  5. cmd命令行进入DOS方式编译运行C语言程序实现字符串转换

    需求:输入一个字符串(长度小于50),然后过滤掉所有的非数字字符,得到由数字字符组成的字符串,将其转化为double型结果输出(4位小数). 源程序: #include<stdio.h>i ...

  6. Python中的引号用法总结

    Python中的引号: 1.表示多行注释--一对三个单引号或双引号表示多行注释 #-*-coding :utf-8-*- #防止乱码,方便在程序中添加中文,把编码统一成UTF-8 from selen ...

  7. UITabbarController左右滑动切换标签页

    UITabbarController左右滑动切换标签页 每个Tabbar ViewController都要添加如下代码,建议在基类中添加:ViewDidLoadUISwipeGestureRecogn ...

  8. Boyer-Moore Majority Vote Algorithm

    介绍算法之前, 我们来看一个场景, 假设您有一个未排序的列表.您想知道列表中是否存在一个数量占列表的总数一半以上的元素, 我们称这样一个列表元素为 Majority 元素.如果有这样一个元素, 求出它 ...

  9. Canvas: 优雅的代码作图系列:中国国旗

    Canvas: 优雅的代码作图系列:中国国旗 有很多个这练手的,好的差的都有.这次,我演示下用极客的代码,画出最标准的中国国旗,并详细说明代码是怎么写出来的. 绘制规范: 一.严格按照绘制说明: 二. ...

  10. FPS手游如何脱颖而出?看《CF手游》的性能突破之路

    WeTest导读 俗话说:用户体验不谈性能就是耍流氓. 在PC游戏上的性能问题并没有那么明显, 加个内存换个CPU或者刷个主频就能轻松搞定:到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载 ...