开发者社区> 聚优云惠> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android Bintray、JCenter 替代方案MavenCentral(发布jar,aar到Maven中央仓库)

简介: Android Bintray、JCenter 替代方案MavenCentral(发布jar,aar到Maven中央仓库)
+关注继续查看

Android托管aar新方案MavenCentral

2021年5月1日后, BintrayJCenter将不能使用, Google采用mavenCentral作为替代。

一、旧方案(bintray)

1.项目build.gradle
buildscript {
    ext.kotlin_version = "1.4.31"
    repositories {
        google()
        jcenter()
        maven { url "https://dl.bintray.com/javakam/maven" }
    }
    dependencies {
        //classpath 'com.novoda:bintray-release:0.9.2'
        classpath 'com.github.panpf.bintray-publish:bintray-publish:1.0.0'
        ...
    }
}

2.具体Module的build.gradle
plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-kapt'
    //id 'com.novoda.bintray-release'
    id 'com.github.panpf.bintray-publish'
}

//https://github.com/novoda/bintray-release/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3HOME
publish {
    repoName = 'maven'
    userOrg = 'javakam'
    groupId = 'ando.library'
    artifactId = 'library'
    publishVersion = config.versionAndo
    desc = 'Ando Core Library.'
    website = "https://github.com/javakam/${rootProject.name}"
    //true 上传前测试 ; false 正常上传
    //dryRun = true
}

3.上传命令
gradlew clean build bintrayUpload -PbintrayUser=javakam -PbintrayKey=xxx -PdryRun=false
复制代码

二、新方案(mavenCentral)

该方案使用的Google官方的maven-publishsigning插件, 未使用其他第三方插件 :
apply plugin: 'maven-publish'
apply plugin: 'signing'
复制代码

1. 注册账号👉Gradle上传项目到MavenCentral

Project: Community Support - Open Source Project Repository Hosting
Issue Type: New Project
Summary: 描述下你的项目是干啥用的。
Group Id: 输入根GROUP_ID,我是用的是github的域名,比如: com.github.javakam 。
Project URL: 你要发布项目的GitHub地址,比如: https://github.com/javakam/FileOperator 。
SCM URL: 版本控制的URL,就是上面的地址加上".git" 。
复制代码

🍎 大概酱婶儿的 :

创建之后半个小时左右会收到一封邮件, 这里要求我在自己的GitHub中创建一个指定名称的仓库

2. 密钥申请

注: 生成的secring.gpg不能直接使用, 会提示异常it may not be a PGP secret key ring

  • 解决方式

🌴 stackoverflow.com/questions/2…

The "secring.gpg" file may not be needed in GPG 2.1 and later versions, and can be generated with commands: "gpg --export-secret-keys -o \xxx\secring.gpg"

最后发布

还是有问题...-\_-||

Failed to publish publication 'release' to repository 'mavencentral'
   > Could not PUT https://oss.sonatype.org/service/local/staging/deploy/maven2/ando/file/core/1.3.9/core-1.3.9.aar. Received status code 403 from server: Forbidden
复制代码

于是问了客服, 发现是自己的groupId没写对, 必须得用上面申请时候的那个GitHub地址PUBLISH_GROUP_ID = "com.github.javakam", 不能是其他的。

3. 查看自己的报告 👉 issues.sonatype.org/issues/?fil…

  • 地址https://issues.sonatype.org/issues/?filter=-2
  • 选中要发布的项目Close后需要等待几分钟进行验证, 成功后再执行release发布

release成功后就可以在https://s01.oss.sonatype.org/content/repositories/releases中搜索到你的项目了

4.查看项目 s01.oss.sonatype.org ; 旧版 oss.sonatype.org/

5.Gradle使用MavenCentral中的项目

  • 配置maven url
repositories {
    //不推荐: 未执行release也可以使用
    maven {url "https://s01.oss.sonatype.org/content/repositories/comgithubjavakam-1000"}
    //推荐: release成功后会直接从mavenCentral拉取aar
    mavenCentral()
    //或者
    maven {url "https://s01.oss.sonatype.org/content/groups/public"}
    //或者
    maven {url "https://s01.oss.sonatype.org/content/repositories/releases"}
}
复制代码

  • 复制Maven XML( Ctrl + c)

Ctrl + vAndroid Studio会自动按照格式groupId : artifactId : version引入, 无需手动拼接!!!

🍎需要在依赖的最后面加上@aar 👉 implementation 'com.github.javakam:ando.file.core:1.4.0@aar', 抑制 Failed to resolve: com.github.javakam:ando.file.core:1.4.0 Show in Project Structure dialog

注意: Android中使用的是aar不是jar

演示项目👉github.com/javakam/Fil…

local.properties 文件不要上传, 内容格式为

sdk.dir=Android SDK 路径
## 上传配置
signing.keyId=xxx
signing.password=秘钥密码
signing.secretKeyRingFile=C\:\\xxx\\xxx\\secring.gpg
ossrhUsername=sonatype 帐号
ossrhPassword=sonatype 密码
复制代码

参考

官方文档
使用 Maven Publish 插件👉developer.android.com/studio/buil…
Maven Publish Plugin👉docs.gradle.org/current/use…
Deploying to OSSRH with Gradle👉central.sonatype.org/pages/gradl…
Windows(推荐) 👉xiaozhuanlan.com/topic/61748…
Mac👉zhuanlan.zhihu.com/p/359228319
英文👉proandroiddev.com/publishing-…
Publishing Android libraries to MavenCentral in 2021👉getstream.io/blog/publis…

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android开发】 ListView使用实战详解,你get到了嘛?
【Android开发】 ListView使用实战详解,你get到了嘛?
53 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
88 0
Android开发之ListView使用经验分享
在Android开发中,ListView是使用最广泛的组件之一,虽然谷歌推出了RecycleView,但是很多项目中依旧在使用ListView,本文将总结一下使用过程中遇到的一些问题,与大家共勉~~~ 一、ListView 与 Adapter List...
760 0
Android开发重要参考资料
=======================博客============================= 秋百万 有心课堂 郭霖 源码 安装ffmpeg 胡凯 官方培训课程 litesuitsway 爱哥 trinea robinRobin Hu...
828 0
+关注
聚优云惠
专业科普建站知识 ,让建站变得更简单。专注于WordPress和Java建站知识讲解,云服务器主机知识讲解,建站程序搭建和网站优化。 欢迎访问我的网站 :http://tencent.yundashi168.com
382
文章
310
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载