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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 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…

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
2570 4
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
6月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
164 0
|
6月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7月前
|
Java Linux Maven
Maven 仓库
Maven仓库管理构件(如JARs):本地仓库在首次执行时创建,默认位于`%USER_HOME%/.m2/repository/`;远程仓库包括中央仓库,存放大量开源Java构件,可在线浏览<http://search.maven.org/>。若本地缺失构件,Maven会从远程下载至本地。可通过settings.xml配置本地仓库路径。
|
4月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
964 3
|
5月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
502 8
|
5月前
|
Web App开发 网络协议 Android开发
Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【9月更文挑战第4天】本文详细对比了在Android平台上实现一对一音视频通话时常用的WebRTC、RTMP及RTSP三种技术方案。从技术原理、性能表现与开发难度等方面进行了深入分析,并提供了示例代码。WebRTC适合追求低延迟和高质量的场景,但开发成本较高;RTMP和RTSP则在简化开发流程的同时仍能保持较好的传输效果,适用于不同需求的应用场景。
280 1
|
6月前
|
存储 安全 API
Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
本文介绍了 Android 开发中常用的键值对存储方案,包括 SharedPreferences、MMKV 和 DataStore,并对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例,帮助开发者根据项目需求选择最适合的存储方案,提升应用性能和用户体验。
211 1
|
6月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
462 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
6月前
|
Android开发 C++ 开发者
Android经典实战之跨平台开发方案:Kotlin Multiplatform vs Flutter
本文对比了Kotlin Multiplatform与Flutter两大跨平台开发框架,从技术特性、性能、开发效率、UI体验、可扩展性及适用场景等维度进行了详尽分析,帮助开发者根据项目需求和技术背景选择最优方案。
263 2

热门文章

最新文章

  • 1
    Java打包jar运行时分离lib和jar
  • 2
    Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
  • 3
    Java构建工具-maven的复习笔记【适用于复习】
  • 4
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 5
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 6
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 7
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 8
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 9
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 10
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 1
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    50
  • 2
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    30
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    70
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    97
  • 5
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
    29
  • 6
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
    249
  • 7
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
    67
  • 8
    【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    36
  • 9
    【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
    53
  • 10
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    86
  • 推荐镜像

    更多