经常上github的同学可能经常看到java开源第三方库一般都会上传到jcenter,从而方便使用者很方便的在gradle中使用。如
compile 'com.github.yangweigbh:volleyx:1.1.0'
本文就如何上传本地aar到或者jar包到jcenter进行介绍
1 jcenter 介绍
jcenter 是 bintray.com 建立的一个maven仓库, 除了包含maven center所有的依赖库以外,还包含了更多的依赖库,是maven center的一个超集
如何生成和上传aar
step1
在 bintray.com注册账号
step2
注册完成之后,选择maven仓库
step3
在maven仓库中选择添加package
step4
填好package信息之后,选择“create package”
step5
这样你就在bintray的maven仓库里生成了自己的package仓库,可以往里面上传你自己的依赖库了
2 生成发布到jcenter的产出文件
引入maven-publish
插件
apply plugin: 'maven-publish'
配置要发布的artifact和pom文件,注意,maven-publish不会在pom中自动生成aar的依赖文件配置,需要在gradle中自行配置
publishing {
publications {
library(MavenPublication) {
groupId "your group id"
artifactId "your artifact name"
version "your artifact version"
// 生成产物的配置
artifact "your artifact file location"
artifact your artifact generate task
//将aar的依赖库添加到pom文件中
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
//Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
configurations.compile.allDependencies.each {
if (it.group == null) return
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
bintray为gradle编写了插件,可以方便的将本地生成的artifact和pom上传到bintray
buildscript {
....
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
}
}
apply plugin: 'com.jfrog.bintray'
加入配置信息
bintray {
user = bintray user name
key = bintray api key //在"edit profile"的"API key"中
publications = [ 'library' ] //上一部分中MavenPublication的列表
pkg {
repo = 'maven' //保留,表示上传bintray中的maven仓库
group = "artifact group name"
name = "artifact name"
desc = "description"
licenses = ['Apache-2.0']
websiteUrl = 'https://github.com/yangweigbh/VolleyX'
vcsUrl = 'https://github.com/yangweigbh/VolleyX.git'
labels = ['rxjava', 'volley', 'rxandroid']
publicDownloadNumbers = true
version {
name = "版本号"
desc = "该版本的描述"
}
}
}
3 编译产出文件并发布到bintray
./gradlew build bintrayUpload
进入bintray上的package页面,可以看到刚才上传的version,点击进去后进入files tab
可以看到刚才上传的文件
4 同步bintray到jcenter
点击Linked To
右边的 add to jenter
,会出现提交到jenter的申请表
提交后等待一段时间,当你的package出现这个标志时,说明你的库已经同步到jcenter了
5 Reference
https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
https://www.virag.si/2015/01/publishing-gradle-android-library-to-jcenter/
https://docs.gradle.org/current/userguide/publishing_maven.html