将Android库发布到jcenter是为了更方便的引用

一般有以下几个步骤:

  1. 新建工程和要发布的module
  2. 修改build.gradle
  3. 新建仓库
  4. library的构建和上传
  5. 将library发布到jceter等待审核通过
  6. 收到审核结果邮件,引用项目

1. 新建工程和module

新建工程,并将你要发布的独立成一个module,便于发布

example:

这里面新建了lib-db module,我们的目标就是将它达成aar格式并发布到jcenter中

2. 修改build.gradle

  1. 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
    }
  2. 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保持一致

  3. 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相关推荐

  1. 将Android项目发布到Jcenter

    将Android项目发布到Jcenter 意义 项目中开发一个公用的类库每次都用依赖项目的形式很繁琐,所以就尝试着发布到Jcenter, 这样就能支持Gradle一句话依赖使用. 准备工作 1. 需要 ...

  2. 使用Android Studio将开源库发布到Jcenter中央库

    首先在 https://bintray.com 注册一个账号,登录后然后从其后台获得一个API Key 在你的项目根目录下的build.gradle文件中加入依赖,最后文件内容就变成了这样子. bui ...

  3. 创建构建方法android,如何快速创建并发布一个 Android 库

    一. 前言 最近经常看到各种大神的库,发现用起来非常方便,自己研究了一下,来写个库发布一下,让自己写代码更加方便一点,自己封装了基本的开发工具类.也是搜集了各位大神的优秀代码总结的. 二.必要的准备工 ...

  4. android studio 库项目,Android Studio 发布项目到jcenter库

    第一次发布项目到jcenter,虽然网上有很多教程了,但是过程还是比较曲折.不过最终还是找到简单的方式,使用com.novoda.bintray-release实现发布. 认识jcenter 我们经常 ...

  5. Android 依赖库发布(上传 Library 到 JCenter)gradle最高支持4.4

    1.注册 Bintray 注册时要注意哦,千万不要注册成组织的账户,一定要注册为个人.因为组织账户只有一个月的免费使用时间. 个人账户注册地址:bintray.com/signup/oss 有Gith ...

  6. 【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本...

    问题描述 解决方法 先了解compile comsquareupokhttpokhttp240的意义 了解Jcenter和Maven jcenter Maven Central 理解jcenter和M ...

  7. Android Studio发布项目到jcenter

    目录 一.创建Bintray账户及Maven仓库 二.上传项目到jcenter 1.配置Android项目 2.Gradle命令上传 3.在项目中引用 4.Add to JCenter 三.Demo示 ...

  8. Android studio 使用Gradle发布Android开源项目到JCenter 总结

    1.注册账号 先到https://bintray.com注册一个账号.  这个网站支持 github 账户直接登录的 2.获取  bintray.user  和 bintray.apikey      ...

  9. 2017年Spring发布了30个新的Android库,值得您关注

    by Michal Bialas 由Michal Bialas 2017年Spring推出的30个最酷的Android库 (The 30 Coolest Android Libraries from ...

最新文章

  1. 华为八爪鱼自动驾驶云
  2. 如何使用Nodejs爬虫看漫画
  3. [LeetCode]: 53: Maximum Subarray
  4. python实现:旋转矩阵转换为四元数
  5. xcode8 matlab,Xcode8 iOS App上传详细流程
  6. Unity C# 设计模式(一)单例模式
  7. java RuntimeException
  8. jqGrid方法整理
  9. Mac终端文件类型显示不同颜色
  10. 深度学习进行领域适应(Domain Adaptation)开山之作
  11. nas 和 远程文件夹同步_群晖NAS同步文件夹功能打开有什么需要注意的?
  12. 严题集6.65//Leetcode105 已知二叉树前序序列和中序序列分别存放在两个一位数组中,建立该二叉树的二叉链表
  13. 网利友联迈入敏捷开发新时代
  14. 个人域名备案详细流程(图文并茂)
  15. 灭屏流程 - 安卓R
  16. 中文转换为日文的几点注意事项
  17. Python基础知识详解 从入门到精通(八)魔法方法
  18. 如何使用计算机蠕虫病毒软件,incaseformat蠕虫病毒是什么?电脑若中病毒后如何修复。...
  19. 大学里 信息领域的专业 名称解释
  20. c语言工程师培训机构,广州C语言语言高级培训中心

热门文章

  1. java和android 语法区别_PET和PTE的区别在哪里?出国留学到底选哪个
  2. 鸿蒙密视视频加密软件,鸿蒙密视视频加密软件
  3. Python用泰勒公式模拟函数
  4. 它来了,它来了,最强目标检测算法YOLO v4,它真的来了!!!
  5. GELU的两个初等函数近似是怎么来的?
  6. NLP 专题论文解读:从 Chatbot 到 NER | PaperDaily #11
  7. HDU2091 空心三角形 水题
  8. c语言自增自减5运算符详解,巧用C语言中的自增自减运算符
  9. oracle成本岗,ORACLE的成本管理.doc
  10. 【计算机IO系类】Java NIO