前面我们使用自己封装的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. JS浏览器对象:window对象、History、Location对象、Screen对象

    一.JS浏览器对象-window 1.window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 所有JavaScript全局对象.函数以及变量均自动成为window对象的成 ...

  2. Install and Run NATS Streaming Server

    NATS是一个开源的.轻量级的.高性能的分布式消息通信系统,使用的公司有百度.西门子.VMware.HTC和爱立信.NATS Streaming是以NATS为动力的数据流系统,是用go语言写的,NAT ...

  3. 再起航,我的学习笔记之JavaScript设计模式03

    我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 上一 ...

  4. 是什么让javascript变得如此奇妙

    What Makes Javascript Weird...and AWESOME -> First Class Functions -> Event-Driven Evironment ...

  5. css中的几个小tip(二)

    margin的塌陷现象 (一)在标准文档流中, 垂直方向存在margin的塌陷现象 先上段代码: <style type="text/css"> .box{ width ...

  6. [转载]Splay Tree数组实现+详解

    变量声明:f[i]表示i的父结点,ch[i][0]表示i的左儿子,ch[i][1]表示i的右儿子,key[i]表示i的关键字(即结点i代表的那个数字),cnt[i]表示i结点的关键字出现的次数(相当于 ...

  7. [bzoj4832]抵制克苏恩 概率dp

    考试的时候打了个搜索,时间比较短,样例又非常的弱,实在不太清楚他这个到底是什么意思. 不过lc大神好腻害,讲解了一下非常的清楚了. f[i][j][k][l]表示第i次伤害(啊),一滴血j个,两滴血k ...

  8. [NOIP 2010]饮水入城 搜索+贪心

    考试的时候写了个dfs找出来了,最后处理的时候想到了贪心,但是正确性没有想通.然后想了想动规,也没想通.最后没办法,用状态的话用了个状压,弄了40分. 正解是bfs+贪心.Dfs也有过的. 下面题解引 ...

  9. 社群系统ThinkSNS V4.5.29 APP更新发布,新增用户认证及系统消息

    社群系统ThinkSNS V4版本移动端APP将于7月29日更新发布,本次更新修复部分bug,最主要是增加了移动端APP的用户认证功能,以及添加了系统消息,为V4.5.29版本发布.这两个功能PC端的 ...

  10. RMAN基础恢复测试

    --RMAN恢复测试实战   RMAN> list backup;   using target database control file instead of recovery catalo ...