Android 发布自己的sdk

作为一个开发,总是会跟开源组件打交道,现在记下我自己写的开源组件遇到的问题

1.创建一个Android Library

2.修改build.gradle

plugins {
    id 'com.android.application'
}

里面的id 'com.android.application' 改为  id 'com.android.library'

android {
    compileSdk 32

    defaultConfig {
        // applicationId "com.xjcmpt.fightstreet"
    }
}

把Library下的build.gradle里面的applicationId注释,还有Androidmanifest文件的


               
 
               


这个要注释掉,不然会有两个启动图标

3.生成aar文件

Android 发布自己的sdk_第1张图片

outputs\aar下面有生成的aar文件

4.注册一个Sonatype JIRA 账号

这里给个链接System Dashboard - Sonatype JIRA

或者看一看其他人的

Android Gradle7.0上传Library到maven仓库_光临天下的博客-CSDN博客_gradle 上传文件




Android手把手,发布开源组件至 MavenCentral仓库_许进进的博客-CSDN博客

这两篇文章帮了我很多,感谢大佬

5.准备gpg签名,链接同上,都能找到

Gpg4win - Get Gpg4win 去下载Gpg4win

Android 发布自己的sdk_第2张图片

我的是这样的

Android 发布自己的sdk_第3张图片

要勾选使用密码句才会生成我们需要的密钥

Android 发布自己的sdk_第4张图片

生成后记得保留后八位数字,后面要用

Android 发布自己的sdk_第5张图片

选择在服务器上发布

不放心的朋友可以去 keys.openpgp.org 查一查,前面转的链接也有图,我就不详细说了

上传成功后选择备份私钥,导出...选项导的是公钥

导出的时候记得看后缀,我们要的是gpg,其他格式不要

6.准备本地的gradle.properties

这里要注意,不是我们项目里面的gradle.properties,是在C:\Users\用户\.gradle文件夹下的gradle.properties,如果没找到可以自己新建一个,在这个gradle.properties里面我们需要填一些资料

# MavenCentral
signing.keyId=私钥后9位
signing.password=创建私钥时填写的密码
signing.secretKeyRingFile=私钥的绝对路劲,记得把\改成\\,不然studio提示你\uxxxx
mavenCentralUsername=Sonatype账号名
mavenCentralPassword=Sonatype账号密码

7.准备maven publish插件

我前面发的两个大佬的链接,到我搞这一步的时候总是失败(要自己写gradle文件,有兴趣的朋友可以试试),那没辙了,换吧

找了一下,有个大佬写了插件,不用我们自己去写gradle文件,照着大佬的教程走就好了,这里我给大家精简一下,直接上图

Android 发布自己的sdk_第6张图片

这个是项目的build.gradle配置

Android 发布自己的sdk_第7张图片

这个是我们要抽取aar的library的 

Android 发布自己的sdk_第8张图片

这个是我直接照搬的settings.gradle里面的内容,就那三个仓库,全部都是https://s01.oss.sonatype.org开头的,我也不知道具体需要哪个还是三个都要,大家看着来吧 

8.准备项目的gradle.properties

除了我们电脑里面的gradle.properties,项目里面的gradle.properties也有东西要配置,这个就是我的配置,大家看着填吧

# 服务器地址  maven center
SONATYPE_HOST=S01

# 发布 release 组件时是否签名
RELEASE_SIGNING_ENABLED=true

VERSION_NAME = 0.0.5
POM_ARTIFACT_ID = FactorsSDK
POM_NAME = TestModSDK
POM_DESCRIPTION = 描述
POM_PACKAGING = aar
GROUP=创建账号时的groupid
POM_INCEPTION_YEAR=2022
# 主页
POM_URL=https://github.com
# Licenses 信息
POM_LICENSE_NAME=The Apache Software License, Version 2.0
POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENSE_DIST=repo
# 版本控制信息
POM_SCM_URL=https://github.com/
POM_SCM_CONNECTION=scm:git:git://github.com/.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://[email protected]/.git
# 开发者信息
POM_DEVELOPER_ID=nameid
POM_DEVELOPER_NAME=name
POM_DEVELOPER_URL=https://github.com/

9.准备上传到仓库

准备工作做好以后我们就该上传代码了,这边建议大家先在本地上查看一下pom文件

Android 发布自己的sdk_第9张图片

这个生成一个pom文件 

Android 发布自己的sdk_第10张图片

这个文件可以查看我们自己的配置全不全,不过有填漏的记得补上,不然等你提交的时候各种报漏不给过,浪费你时间,附带一提,如果pom文件里面没有你在项目的gradle.properties填的信息,可以在本地的gradle.properties里面填,格式是一样的,我搞这个的时候我的描述就是非要卸载本地的gradle.properties才能写进pom文件

10.上传

Android 发布自己的sdk_第11张图片

还是这里上传 ,对照下面来决定你要用哪个吧

generateMetadataFileFoxxxPublication:生成组件配置数据,会在 build/publications/$xxx/里面,一般比较少用。
generatePomFileForxxxPublication:生成pom文件,在build/publications/$xxx/里面,一般比较少用。
publish:遍历所有发布器,发布到所有的仓库,不包括本地仓库。
publishAllPublicationsToxxxRepository:遍历所有发布器,发布到对应的仓库,这里是发布到release仓库里面。
publishxxxPublicationToMavenLocal:将xxx发布器,发布到本地仓库,这里的发布器的mavenJava/release
publishxxxPublicationToxxxRepository:将xxx发布器,发布到xxx仓库,这里的发布器的mavenJava/release,仓库是relase仓库
publishToMavenLocal:遍历所有发布器,发布到本地仓库。

11.检查上传效果

跳转链接Nexus Repository Manager,点击右上角的log in,填上之前申请的 Sonatype账号和密码

然后选择

Android 发布自己的sdk_第12张图片

后面因为我项目上传成功了,刷新后就没内容,没法截图了

在现在empty selection的地方会出现三个选项卡

summary,activity和content,其他先不谈,content就是你上传的东西,确认没有问题后就可以点击close后写描述,接着上传

等待几分钟后在activity选项卡那里你可以看到结果,如果前面的准备没有缺漏,那么你就可以直接点上面的release,把内容传到Maven Central 仓库了

当上传成功的时候,Sonatype会发一条信息给你,注意看你申请Sonatype账号时填的邮箱,但更新到https://search.maven.org可能需要长达几个小时。

跳转链接 Maven Central Repository Search  可以查看

你可能感兴趣的:(不用找系列,android,android,studio,gradle)