如何快速将Android库发布到JCenter
将Android库发布到jcenter是为了更方便的引用
一般有以下几个步骤:
- 新建工程和要发布的module
- 修改build.gradle
- 新建仓库
- library的构建和上传
- 将library发布到jceter等待审核通过
- 收到审核结果邮件,引用项目
1. 新建工程和module
新建工程,并将你要发布的独立成一个module,便于发布
example:
这里面新建了lib-db module,我们的目标就是将它达成aar格式并发布到jcenter中
2. 修改build.gradle
project 的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.1.3'//关键的二行代码必须加上classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files} }allprojects {repositories {google()jcenter()} }task clean(type: Delete) {delete rootProject.buildDir }
module的build.gradle
apply plugin: 'com.android.library' //1、引用插件 apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray'android {compileSdkVersion 28defaultConfig {minSdkVersion 14targetSdkVersion 28versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar']) } //2、自定义一些属性,这些属性在upload.gradle都会使用到 ext { //发布到bintray上仓库名,执行上传前必须手动创建同名到仓库,否则上传会失败bintrayRepo = 'framework'bintrayName = 'db' //群组idpublishedGroupId = 'com.fzm.db' //发布成库的名称libraryName = 'db' //最好和libraryName保持一致artifact = 'db' //库描述libraryDescription = 'a db library for fzm'siteUrl = 'github project index page'gitUrl = 'github project url'libraryVersion = '0.0.3'developerId = 'developer id'developerName = 'your name'developerEmail = 'xxxx@163.com'licenseName = 'The Apache Software License, Version 2.0'licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'allLicenses = ["Apache-2.0"] } //此处是为了将发布的代码逻辑封装到upload.gradle脚步中去了,这样build.gradle更简洁,代码维护性更高 apply from : 'upload.gradle'
module name建议和bintrayName、libraryName保持一致
upload.gradle
此脚步文件格式比较固定,可以直接copy即可
group = publishedGroupId version = libraryVersioninstall {repositories.mavenInstaller {pom.project {packaging 'aar'groupId publishedGroupIdartifactId artifactname libraryNamedescription libraryDescriptionurl siteUrllicenses {license {name licenseNameurl licenseUrl}}developers {developer {id developerIdname developerNameemail developerEmail}}scm {connection gitUrldeveloperConnection gitUrlurl siteUrl}}} }task sourcesJar(type: Jar) {classifier = 'sources'from android.sourceSets.main.java.srcDirs }task javadoc(type: Javadoc) {source = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator)) }task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir }artifacts {archives javadocJararchives sourcesJar }Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream())bintray {user = properties.getProperty("bintray.user")key = properties.getProperty("bintray.apikey")configurations = ['archives']pkg {repo = bintrayReponame = bintrayNamedesc = libraryDescriptionwebsiteUrl = siteUrlvcsUrl = gitUrllicenses = allLicensesdryRun = falsepublish = trueoverride = falsepublicDownloadNumbers = trueversion {desc = libraryDescription}} } javadoc{options{encoding "UTF-8"charSet "UTF-8"} }
3. 新建仓库
访问https://bintray.com/ -> login -> view Profile -> add new Repository
注意:
这里的仓库名称必须和bintrayRepo字段保持一致,此处示例为framework;
因为我们通过脚步实现上传发布,所以需要用到api key;
edit Profile -> api key -> 输入密码
因为api key 属于敏感信息,所以我们存放到本地(local.properties),不要上传到git上
bintray.user=userName
bintray.apikey=your api key
4. library的构建、上传
//clean and install
./gradlew clean install
upload
./gradlew bintrayUpload
成功后我们登录官网可以在framework仓库中看到发布的library了
注意此时该library并没有发布到jcenter中,还差最后一步
5. 发布到jcenter
进入自己的library(示例中为db) -> Add to JCenter
提交申请后只需要耐心等待审核了,审核通过会显示如下,这样你就可以直接引用了
三种引用方式
如何快速将Android库发布到JCenter相关推荐
- 将Android项目发布到Jcenter
将Android项目发布到Jcenter 意义 项目中开发一个公用的类库每次都用依赖项目的形式很繁琐,所以就尝试着发布到Jcenter, 这样就能支持Gradle一句话依赖使用. 准备工作 1. 需要 ...
- 使用Android Studio将开源库发布到Jcenter中央库
首先在 https://bintray.com 注册一个账号,登录后然后从其后台获得一个API Key 在你的项目根目录下的build.gradle文件中加入依赖,最后文件内容就变成了这样子. bui ...
- 创建构建方法android,如何快速创建并发布一个 Android 库
一. 前言 最近经常看到各种大神的库,发现用起来非常方便,自己研究了一下,来写个库发布一下,让自己写代码更加方便一点,自己封装了基本的开发工具类.也是搜集了各位大神的优秀代码总结的. 二.必要的准备工 ...
- android studio 库项目,Android Studio 发布项目到jcenter库
第一次发布项目到jcenter,虽然网上有很多教程了,但是过程还是比较曲折.不过最终还是找到简单的方式,使用com.novoda.bintray-release实现发布. 认识jcenter 我们经常 ...
- Android 依赖库发布(上传 Library 到 JCenter)gradle最高支持4.4
1.注册 Bintray 注册时要注意哦,千万不要注册成组织的账户,一定要注册为个人.因为组织账户只有一个月的免费使用时间. 个人账户注册地址:bintray.com/signup/oss 有Gith ...
- 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本...
问题描述 解决方法 先了解compile comsquareupokhttpokhttp240的意义 了解Jcenter和Maven jcenter Maven Central 理解jcenter和M ...
- Android Studio发布项目到jcenter
目录 一.创建Bintray账户及Maven仓库 二.上传项目到jcenter 1.配置Android项目 2.Gradle命令上传 3.在项目中引用 4.Add to JCenter 三.Demo示 ...
- Android studio 使用Gradle发布Android开源项目到JCenter 总结
1.注册账号 先到https://bintray.com注册一个账号. 这个网站支持 github 账户直接登录的 2.获取 bintray.user 和 bintray.apikey ...
- 2017年Spring发布了30个新的Android库,值得您关注
by Michal Bialas 由Michal Bialas 2017年Spring推出的30个最酷的Android库 (The 30 Coolest Android Libraries from ...
最新文章
- 华为八爪鱼自动驾驶云
- 如何使用Nodejs爬虫看漫画
- [LeetCode]: 53: Maximum Subarray
- python实现:旋转矩阵转换为四元数
- xcode8 matlab,Xcode8 iOS App上传详细流程
- Unity C# 设计模式(一)单例模式
- java RuntimeException
- jqGrid方法整理
- Mac终端文件类型显示不同颜色
- 深度学习进行领域适应(Domain Adaptation)开山之作
- nas 和 远程文件夹同步_群晖NAS同步文件夹功能打开有什么需要注意的?
- 严题集6.65//Leetcode105 已知二叉树前序序列和中序序列分别存放在两个一位数组中,建立该二叉树的二叉链表
- 网利友联迈入敏捷开发新时代
- 个人域名备案详细流程(图文并茂)
- 灭屏流程 - 安卓R
- 中文转换为日文的几点注意事项
- Python基础知识详解 从入门到精通(八)魔法方法
- 如何使用计算机蠕虫病毒软件,incaseformat蠕虫病毒是什么?电脑若中病毒后如何修复。...
- 大学里 信息领域的专业 名称解释
- c语言工程师培训机构,广州C语言语言高级培训中心
热门文章
- java和android 语法区别_PET和PTE的区别在哪里?出国留学到底选哪个
- 鸿蒙密视视频加密软件,鸿蒙密视视频加密软件
- Python用泰勒公式模拟函数
- 它来了,它来了,最强目标检测算法YOLO v4,它真的来了!!!
- GELU的两个初等函数近似是怎么来的?
- NLP 专题论文解读:从 Chatbot 到 NER | PaperDaily #11
- HDU2091 空心三角形 水题
- c语言自增自减5运算符详解,巧用C语言中的自增自减运算符
- oracle成本岗,ORACLE的成本管理.doc
- 【计算机IO系类】Java NIO