如何通过Android Studio发布Android Library到jCenter

1,099 阅读3分钟

熟悉Android开发的人对aar都不会陌生,它类似于jar,但是相对于jar多包含了Android特有的资源文件等信息。我们可以在项目中直接引用一个aar,也可以通过implementation远程地址的方式下载到本地后来使用。

通过implementation远程地址的方式使用的时候,aar都是从预先配置在工程根build.gradle文件中的远程仓库中下载的,最常见的就是maven和jcenter。maven由于使用不够方便等原因渐渐地不再流行,而jcenter渐渐地为大众所接受。

repositories {
    google()
    jcenter()   
    maven()
}

既然jcenter上可以下载aar,那么就意味着肯定也可以上传aar,我们开发的开源库可以打成aar后发布到jcenter上,供其他人来使用。为了更方便地向jcenter发布项目,可以借助JFrog BintrayJFrog Bintray提供了非常方便的软件发布能力,并且支持一键转发到jcenter上。

下面就开始教程吧。

在Bintray上创建Package

在Bintray上,有Repository和Package两个概念。Repository是一个仓库,专门存储Package的。比如我们每一个上传的项目就是一个Package。可以创建多个Repository,一个Repository下面可以有多个Package。Repository可以有多种类型,对于发布Android Library来说,使用Maven这个类型就可以了。

  1. 注册bintray.com账号

  2. 登录后点击Add New Repository

  3. 类型选择Maven,名字随意

  4. 创建好Repository之后,在首页就可以看到刚才创建好的Repository了。点击进入。

  5. 点击Add a Package准备添加Package

  6. 把该填的信息都填上后,点击save,这样一个Package就创建好了

下面就开始从本地的Android Studio上传项目到对应的Package中了。

配置Android Studio

  1. 在工程的根build.gradle中添加依赖
dependencies {
    classpath ‘com.android.tools.build:gradle:3.1.4’
    classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3’
    classpath ‘com.github.dcendents:android-maven-gradle-plugin:2.0'
}
  1. local.properties文件中添加bintray信息
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY

Apikey获取方式如下,点击首页右上角用户名处,会展开一个弹窗

点击Create Organization,在最下方即是Apikey

  1. 在需要上传仓库的Library中的build.gradle文件中添加如下配置信息。
apply plugin: ‘com.android.library’ 

ext { 
bintrayRepo = ‘你的Repository名称’ 
bintrayName = ‘你的Package名称’ 

publishedGroupId = ‘这个包的groupId’ 
libraryName = ‘library名字,打出来的aar名字’ 
artifact = ‘这个包的artifactId’ 

libraryDescription = ‘对这个包的描述,可以不填’ 

siteUrl = ‘https://github.com/liwshuo/StateLayout’ 
gitUrl = ‘https://github.com/liwshuo/StateLayout.git’ 

libraryVersion = ‘1.0.0’ 

developerId = ‘你的Id’ 
developerName = ‘你的名字’ 
developerEmail = ‘你的邮箱’ 

licenseName = 'The Apache Software License, Version 2.0' 
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' 
allLicenses = [“Apache-2.0”] 
}

当上传的时候,会从这个配置信息中读取相应的数据。

最后在这个build.gralde文件中添加信息

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

这两个文件可能会被墙,建议你将这两个文件下载到本地,放到和工程根build.gradle同目录下。然后通过本地的方式引用。具体位置可以参考第二点中的图,上面标注出了这两个文件。

apply from: ‘../install.gradle’
apply from: ‘../bintray.gradle’

上传

当Android Studio都配置完毕后,最后就到了上传的步骤了 执行./gradlew install生成aar文件 执行./gradlew bintrayUpload上传aar文件

当上传成功后,就可以在Bintray上相应的Package中看到上传的记录了。

最后最后,还是这个项目还是要发布到jcenter的。点击右上角的Action展开列表。点击``Add to jcenter`按钮,等待几个小时后审核完毕,即成功添加到jcenter上了。

当成功发布到jcenter后,可以在右上角这个地方看到提示。

大功告成,接下来就可以在项目中测试这个项目是否可以正常使用了。可以点击最新的版本号,里面能够看到如果使用gradle引用依赖应该如何填写配置。