Android
托管aar
新方案MavenCentral
2021年5月1日后,
Bintray
、JCenter
将不能使用,mavenCentral
作为替代。
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
复制代码
该方案使用的
maven-publish
和signing
插件, 未使用其他第三方插件 :
apply plugin: 'maven-publish'
apply plugin: 'signing'
复制代码
radle上
传项目到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
中创建一个指定名称的仓库
注: 生成的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"
, 不能是其他的。
https://issues.sonatype.org/issues/?filter=-2
Close
后需要等待几分钟进行验证, 成功后再执行release
发布 ✨
release
成功后就可以在https://s01.oss.sonatype.org/content/repositories/releases
中搜索到你的项目了
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"}
}
复制代码
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
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…
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。