如何使Android Studio项目发布到Jcenter中

Android仓库

简单的普及下关于android的依赖仓库,有两种分别是JcenterMaven Central其实不论是Jcenter仍是Maven Central都是Maven库。android

Jcenter

Jcenter是由bintray.com维护,在Android Studio的项目根目录的build.gradle中咱们会看到自动帮咱们实现的Jcenternginx

buildscript {
    repositories {
        jcenter()
    }
}

Maven Central

固然也能够在build.gradle中定义Maven Centralgit

buildscript {
    repositories {
        mavenCentral()
    }
}

至于在Android Studio中为何默认使用Jcenter缘由仍是有的,感兴趣的能够本身去查,我要说的一点就是,这里你能够认为JcenterMaven Central的超集,这样就能更好的理解为何要使用Jcenter了。github

gradle获取library

这里要了解一下咱们看到的依赖所定义的方式,实际上是有格式的并非随便乱写的。其实你只要日常够仔细就能发现他们的格式是同样的。
GroupIdArtifactIdVersionId组成。例如com.jakewharton:butterknife:6.1.0'它的GroupIdcom.jakewhartonArtifactIdbutterknifeVersionId6.1.0。如今看这些依赖是否是更清晰了呢。当咱们添加了依赖以后gradle会先去Maven中查找是否有该library若是有就会使用上面定义的形式下载http://jcenter.bintray.com/GroupId/ArtifactId/VersionIdsql

http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0apache

http://www.codesocang.com/anzhuoyuanma/
经过该连接下载到本地再与咱们的项目结合。api

下面正式进行实现依赖的实现app

注册

首先要在https://bintray.com 中注册帐号,注册都是很简单的就不所说了。
而后回到主页在你的Owned Repositories中看下你是否已经添加了mavenmaven

第一次注册的应该没有,因此咱们要先New Repository建立mavengradle

建立以后会自动跳转到maven中,你会发现没有package,咱们能够Add New Package这种相信都会,我这里要说的是另一种,咱们直接在Android Studio中进行配置而后上传到Bintray

代码中配置

分离成多个Module

为了使别人能更好的使用,咱们通常在实现本身的依赖的时候会把实现的该依赖的源码做为一个Module,再把实例代码做为Application Module。因此咱们要事先处理好Module,下面是我弄好的示例

添加bintray插件

在分了Module以后,首先在项目的根目录build.gradle
dependencies中添加bintray插件

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3

添加bintray认证

找到local.properties文件在其中添加

bintray.user=xxxx
bintray.apikey=xxx

bintray.user是注册的user,至于bintray.apikeyJFrog Bintray中的Your ProfileEdit页面的API Key中能找到。

修改Module中的build.gradle

在其中添加以下示例代码:

apply plugin: 'com.android.library' ext { bintrayRepo = 'maven' bintrayName = 'mypicker' publishedGroupId = 'com.idisfkj.picker' libraryName = 'MyPicker' artifact = 'mypicker' libraryDescription = 'A pickerView on Android' siteUrl = 'https://github.com/idisfkj/idisfkj.picker' gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git' libraryVersion = '1.2.1' developerId = 'idisfkj' developerName = 'idisfkj' developerEmail = 'idisfkj@qq.com' licenseName = 'The Apache Software License, Version 2.0' licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' allLicenses = ["Apache-2.0"] }

同时在最后添加两个脚本

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle' apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

这是我这个依赖的示例。其中bintrayRepo是默认的使用mavenmypicker是创建的package namesiteUrl是你的项目地址,个人项目在github上,因此是github项目的地址形式。gitUrlVCS。其余应该没什么问题,相应的改为本身的信息。

这样就构建好了依赖com.idisfkj.picker:mypicker:1.2.1

上传到bintray

打开Android Studio的终端

编译library文件

在终端输入

./gradlew install

出现BUILD SUCCESSFUL就没问题

上传

在终端输入

./gradlew bintrayUpload

同样的出现BUILD SUCCESSFUL就没问题
而后你进入JFrog Bintray进入maven你就会发现其中多了一个package,若是有的话那就表示完美成功。

同步到Jcenter

完成了上面的步骤并不表明别人能够直接使用

dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }

还要添加

repositories { maven { url 'https://dl.bintray.com/idisfkj/maven/' } }

因此咱们要同步到Jcenter中,怎么同步呢?别急,只要在你刚刚生成的package中点击Add to Jcenter便可。

进去以后直接发送就能够,不须要填写什么。

最后就是等待了。几个小时以后你会收到考核经过的消息,再返回package就会发现Linked to发生了变化。

如今你也能够经过http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。

同时别人也能使用你的依赖,经过以下简单的配置

dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }

版本更新

对于版本更新,只要更改上面配置的版本号libraryVersion = '1.2.1'改为你要更新的版本,其它不变。再从新上传到bintray

总结

我这里再来整理下上传的思路。

  • 既然要上传到Jcenter上,天然要去https://bintray.com 中注册帐号

  • 根据本身的需求建立mavenRepository

  • 把项目分离成Module

  • 在项目根目录的build.gradle中添加bintray插件

  • local.properties中添加bintray认证

  • 修改Module中的build.gradle中的配置

  • Android Studio终端使用./gradlew xxx上传

  • 最后在JFrog Bintray中同步到Jcenter

好了,就到这里了,但愿有所帮助!

相关文章
相关标签/搜索